我正在編寫以下語句以選擇以一系列字符開頭的名稱。Mysql語句選擇以特定範圍字符開頭的名稱
select name from db.table where name like '[c-e]%';
該聲明不返回任何東西給我。但是,當我將其更改爲:
select name from db.table where name like 'c%';
它返回記錄。
什麼問題?
我正在編寫以下語句以選擇以一系列字符開頭的名稱。Mysql語句選擇以特定範圍字符開頭的名稱
select name from db.table where name like '[c-e]%';
該聲明不返回任何東西給我。但是,當我將其更改爲:
select name from db.table where name like 'c%';
它返回記錄。
什麼問題?
@juergen d是正確的,但只要你想的範圍內檢查所有啓動的名字從[CD]需要稍加改動,以便
select name from db.table where name REGEXP '^[c-e].+';
「^」開始必須匹配範圍時表明匹配[CE ]
你應該使用REGEXP
爲:的
SELECT name FROM db.table where name REGEXP '[c-e].+';
沒有工作。再一次,返回0條記錄。 – 2012-07-30 11:37:50
嘗試確切的REGEXP'[c-e]。+' – Omesh 2012-07-30 11:42:32
正如其他人所說,你可以使用REGEXP
;但是當你想在開始字符的範圍,你也可以這樣做:
SELECT name FROM db.table WHERE name >= 'c' AND name < 'f';
這可能會更快,因爲它可以在name
領域採取指數的優勢,避免全面掃描。
您使用的是大小寫還是區分重音的排序規則? – Bridge 2012-07-30 11:19:36
我不知道你在問什麼。但我沒有具體說明。 – 2012-07-30 11:38:59