我想弄清楚如何執行一個mysql查詢,其中我返回以(例如。)AD開頭的結果,又名將返回: - 動物 - 銀行 - 可樂 - 狗 但不是:圓頂冰屋獲取介於(包含)A和D之間的結果
似乎很簡單,但不能找出一個有效的方法來做到這一點。
我的意思是我能得到它基於一個字母:
SELECT * FROM table WHERE word LIKE 'A%'
,但我怎麼能做到這一點與多個字母容易。我考慮過一個循環「將字母從A增加到D,但對字母沒有多大意義。思考?
我想弄清楚如何執行一個mysql查詢,其中我返回以(例如。)AD開頭的結果,又名將返回: - 動物 - 銀行 - 可樂 - 狗 但不是:圓頂冰屋獲取介於(包含)A和D之間的結果
似乎很簡單,但不能找出一個有效的方法來做到這一點。
我的意思是我能得到它基於一個字母:
SELECT * FROM table WHERE word LIKE 'A%'
,但我怎麼能做到這一點與多個字母容易。我考慮過一個循環「將字母從A增加到D,但對字母沒有多大意義。思考?
SELECT *
FROM table
WHERE word REGEXP '^[A-D]';
完美,謝謝:) – Andrew
我不認爲這可以使用任何使大數據集緩慢的索引。 –
@AndreasWederbrand這是真的,最快的選擇可能是添加一個只有小寫或大寫符號的世界的第一個字母的列,並在插入/更新記錄時填充它。 –
你試過'REGEXP'嗎? – deceze
'$ letter ='A'; while($ letter!='E'){echo $ letter ++; (範圍('A','D')爲$字母){echo $ letter; }「這兩者都具有很大的意義;但在你的SQL中使用正則表達式是一個更好的解決方案 –