2012-07-30 30 views
0

我正在編寫以下語句以選擇以一系列字符開頭的名稱。Mysql語句選擇以特定範圍字符開頭的名稱

select name from db.table where name like '[c-e]%'; 

該聲明不返回任何東西給我。但是,當我將其更改爲:

select name from db.table where name like 'c%'; 

它返回記錄。

什麼問題?

+0

您使用的是大小寫還是區分重音的排序規則? – Bridge 2012-07-30 11:19:36

+0

我不知道你在問什麼。但我沒有具體說明。 – 2012-07-30 11:38:59

回答

2

@juergen d是正確的,但只要你想的範圍內檢查所有啓動的名字從[CD]需要稍加改動,以便

select name from db.table where name REGEXP '^[c-e].+'; 

「^」開始必須匹配範圍時表明匹配[CE ]

0

你應該使用REGEXP爲:的

SELECT name FROM db.table where name REGEXP '[c-e].+'; 
+0

沒有工作。再一次,返回0條記錄。 – 2012-07-30 11:37:50

+0

嘗試確切的REGEXP'[c-e]。+' – Omesh 2012-07-30 11:42:32

0

正如其他人所說,你可以使用REGEXP;但是當你想在開始字符的範圍,你也可以這樣做:

SELECT name FROM db.table WHERE name >= 'c' AND name < 'f'; 

這可能會更快,因爲它可以在name領域採取指數的優勢,避免全面掃描。

相關問題