Tamam, indekslenmiş bir anahtar ve indekslenmemiş alan içeren bir tablom var. Belirli bir değere sahip tüm kayıtları bulmam ve satırı döndürmem gerekiyor. Birden fazla değere göre sipariş verip veremeyeceğimi bilmek istiyorum.
Misal:
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
sözde: sonuçların bu şekilde sıralanmasını ister, 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'
Böylece sonuçlar şöyle olacaktır:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
Sözdizimi geçerlidir ancak sorguyu yürüttüğümde, 1 kayıtla sınırlasam bile hiçbir zaman sonuç döndürmez. Bunu yapmanın başka bir yolu var mı?
X_field'ı test sonuçları olarak düşünün ve koşula giren tüm kayıtları doğrulamam gerekiyor. Test sonuçlarını başarısız değerler, geçilen değerlere göre sıralamak istedim. Böylece, önce başarısız olan değerleri ve ardından ORDER BY kullanarak geçirilen değerleri doğrulayabilirim.
Yapamadığım şey:
- GROUP BY, belirli kayıt değerlerini döndürmem gerektiği için
- NEREDE x_field IN ('f', 'p', 'i', 'a'), birkaç doğrulama testi için bir sorgu kullanmaya çalıştığım için tüm değerlere ihtiyacım var. Ve x_field değerleri DESC / ASC düzeninde değil
Bu soruyu yazdıktan sonra, bunu yeniden düşünmem gerektiğini düşünmeye başladım, LOL!