2011-01-28 24 views
7

Mysql sonuçlarını sütun önceliğine göre nasıl sipariş edebilirim?Mysql sonuçlarını sütun önceliğine göre nasıl sipariş edebilirim?

Örnek. Bir ürün tablosum var, tablo iki sütun, ürün adı (p.name) ve ürün açıklaması (p.desc) içerir.

Veritabanındaki ürünleri bulmak için kullanıcılar anahtar kelimeleri girebilmelidir.

"p.name LIKE '%keyword%' OR p.desc LIKE '%keyword%' 

p.name ile eşleşen sonuçların önce ve p.desc saniyesini döndürmesini istiyorum.

Bunu nasıl başarmaya çalışırdım? İlk Koşul sağlandığı takdirde

cevap

11

Ben order by fıkra false değerlendirecek,

ORDER BY (NOT (p.name LIKE '%keyword%')) 

gibi bir şey denemek istiyorum. Böylece, bu tür kayıtlar ileriye doğru itilecek.

düzenlemek
muhtemelen yanlışlıkla soruya kaçarsa işaretini (=) Eşittir.

+2

Bu, çalışır, ancak büyük kümeler üzerinde en iyileştirme gerekebilir. – Piskvor

+0

'LIKE =…'? ‍‍‍‍ – Gumbo

+0

@Gumbo Eh, bunun zaten onun için çalıştığını varsaydım :) –

1

MySQL Tam Metin Araması'nı MATCH() ... AGAINST ve diğer here numaralı gibi denemelisiniz. Ardından, sütunlar ile arama sıralamasına göre sıralayın.

İlgili konular