Bu çok mantıklı olmayabilir, ancak WHERE IN
maddesinde yinelenen ölçütler varsa MySQL'in tam yinelenen satırları döndürmesine izin vermek isterim. Mümkün mü? MySQL'i, JOINT/UNION kullanmadan WHERE IN yan tümcesi kopyalarını döndürmek için zorla?
SELECT
columns
FROM
table
WHERE
id IN(1, 2, 3, 4, 5, 1, 2, 5, 5)
I'ld kez kimlikli bana 5 üç id en 1 ve 2 kez kez, ve 3. ve 4. satırları döndürmek için. IN
argümanlar uzunluğundan yanı sıra yinelenen sayımı (bir, iki, üç kez, vs.) gibi
UNION
veya
JOIN
güvenmek istemiyorum keyfi olacaktır. Aksi takdirde böyle bir şey mümkün mü?
Merhaba İşareti, cevabınız için teşekkürler. Şeylerin bakışlarına göre, o zaman sadece JOIN ve UNION ile gitmek zorunda kalacağım. Burada kullandığınız gibi UNION'un kullanımının farkında değildim. Tamamen anladığımdan bile emin değilim. :) Ama çok şık görünüyor! UNION'u ilk başta kullanmak istemediğim nedeni, kesin SELECT ifadelerini tekrar etmem gerektiğini düşündüğümden kaynaklanıyor. Bu olsa çok daha temiz görünüyor. –
Bu arada, bu UNION'lar sonucun kesin sırasını garanti edecekler mi, yoksa açıklamada yer aldıkları şekilde tam olarak sipariş vermek için bir ORDER maddesini kullanmaya devam etmem gerekecek mi? –
Sipariş vermek için * siparişe ihtiyacınız var. Bu her zaman doğrudur. Neyse ki yukarıdaki sorguyu değiştirmek kolay: 'SELECT 1 ID olarak, 1 SortOrder UNION TÜM SEÇİMİ 2, 2 UNION TÜM SEÇİMİ 3, 3' vb. Sonra' ORTAK BY DİZİ… ON ... '. –