2014-01-28 31 views
1

我有一個sql查詢,我想使它由以指定關鍵字開頭的名稱排序。如何使我的SQL查詢按關鍵字開頭的名稱進行ORDERED?

例子:

SELECT * FROM mytable WHERE name LIKE '%tel%' 

-

ID Name 
1 Protel 
2 Tastela 
3 Telephones 
4 Telling 
5 Protelix 
6 Zetel 

我有查詢 「電話」,我想找到所有這些結果在那裏,它是做正確。但這些行的順序並不是我想要的,我希望它們具有最相關的(我認爲是,以關鍵字「tel」開頭的那些)會導致第一行,所以我想要的結果應該是是這樣的:

ID Name 

3 Telephones 
4 Telling 
2 Tastela 
1 Protel 
5 Protelix 
6 Zetel 

怎麼做呢?

回答

4

試試這個:

order by name like 'tel%' desc, name 

這工作,因爲表達name like 'tel%'返回boolean。一個真實值被視爲1,並被視爲0。您首先需要真實值,因此order by上的desc

+0

如果可能,你可以舉例說明如何使用'field(...)'函數來實現這個功能嗎? –

+0

@Ravinder。 。 。在這種情況下,你不能。如果您對數據有疑問,請提問。 –

+0

Gordon Linoff,你是對的。我不知道我們可以在「按順序」這樣做。 :) – Grego

相關問題