1

我试图弄清楚如何做一个mysql查询,我返回以(例如)AD开头的结果,又名将返回:-动物-银行-可乐-狗但不是:冰屋

看起来很简单,但无法找到一种有效的方法来做到这一点。

我的意思是我可以根据一封信得到它:

SELECT * FROM table WHERE word LIKE 'A%'

但我怎么能轻松地用多个字母做到这一点。我考虑了一个循环'将字母从 A 增加到 D 但这对字母没有多大意义。想法?

4

2 回答 2

7
SELECT *
FROM table
WHERE word REGEXP '^[A-D]';
于 2013-07-15T11:59:47.660 回答
3

正常的between效果很好,可以使用索引。

Select * from table where word between 'a' and 'e' and word != 'e';

所有以“a”开头的单词都应该大于“a”,所有以“d”开头的单词都应该小于“e”。

这是一个sqlfiddle,表明它在概念上有效,并且还与正则表达式替代方案进行了比较。查看执行计划以了解如何使用索引。

于 2013-07-15T11:59:20.843 回答