标签: php mysql
我试图找出如何进行mysql查询,其中我返回以(例如)A-D开头的结果,也就是返回: - 动物 - 银行 - 可乐 - 狗 但不是:igloo
看起来非常简单,但无法找到一种有效的方法。
我的意思是我可以根据一封信得到它:
SELECT * FROM table WHERE word LIKE 'A%'
但我怎么能轻易地用多个字母做这个。我考虑过一个循环,将字母从A递增到D,但这对于字母来说并没有多大意义。想法?
答案 0 :(得分:7)
SELECT * FROM table WHERE word REGEXP '^[A-D]';
答案 1 :(得分:3)
普通between效果很好,可以使用索引。
between
Select * from table where word between 'a' and 'e' and word != 'e';
所有以'a'开头的单词应大于'a',所有以'd'开头的单词应小于'e'。
这是一个sqlfiddle,表明它在概念上有效,也可以与正则表达式替代。查看执行计划以了解索引的使用方式。