โอเคฉันมีตารางที่มีคีย์ที่จัดทำดัชนีและไม่มีฟิลด์ที่จัดทำดัชนี ฉันต้องการค้นหาระเบียนทั้งหมดที่มีค่าหนึ่งและส่งคืนแถว ฉันต้องการทราบว่าฉันสามารถสั่งซื้อหลายค่าได้หรือไม่
ตัวอย่าง:
id x_field
-- -----
123 a
124 a
125 a
126 b
127 f
128 b
129 a
130 x
131 x
132 b
133 p
134 p
135 i
pseudo: ต้องการให้ผลลัพธ์เป็นแบบนี้ where ORDER BY x_field = 'f', 'p', 'i', 'a'
SELECT *
FROM table
WHERE id NOT IN (126)
ORDER BY x_field 'f', 'p', 'i', 'a'
ดังนั้นผลลัพธ์จะเป็น:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
ไวยากรณ์ถูกต้อง แต่เมื่อฉันดำเนินการสืบค้นจะไม่ส่งคืนผลลัพธ์ใด ๆ แม้ว่าฉันจะ จำกัด ไว้ที่ 1 ระเบียนก็ตาม มีวิธีอื่นที่จะไปเกี่ยวกับเรื่องนี้หรือไม่?
คิดว่า x_field เป็นผลการทดสอบและฉันจำเป็นต้องตรวจสอบความถูกต้องของบันทึกทั้งหมดที่อยู่ในเงื่อนไข ฉันต้องการจัดลำดับผลการทดสอบตามค่าที่ล้มเหลวและส่งผ่านค่า ดังนั้นฉันสามารถตรวจสอบความถูกต้องของค่าที่ล้มเหลวก่อนจากนั้นจึงส่งผ่านค่าโดยใช้คำสั่ง
สิ่งที่ฉันทำไม่ได้:
- GROUP BY เนื่องจากฉันต้องการส่งคืนค่าระเบียนเฉพาะ
- WHERE x_field IN ('f', 'p', 'i', 'a') ฉันต้องการค่าทั้งหมดเนื่องจากฉันพยายามใช้แบบสอบถามเดียวสำหรับการทดสอบการตรวจสอบความถูกต้องหลายรายการ และค่า x_field ไม่ได้อยู่ในลำดับ DESC / ASC
หลังจากเขียนคำถามนี้ฉันเริ่มคิดว่าฉันต้องคิดใหม่ฮ่า ๆ !