获得介于(包括)A和D之间的结果


Get results that are between (inclusive) A and D

我正试图弄清楚如何进行mysql查询,在这里我返回以(例如)a-D开头的结果,也就是返回:-动物-银行-焦炭-狗但不是:冰屋

看起来很简单,但无法找到有效的方法。

我的意思是,我可以根据一个字母得到它:

SELECT * FROM table WHERE word LIKE 'A%'

但我怎么能用多个字母轻松地做到这一点呢。我考虑过一个循环,把字母从a递增到D,但这对字母来说没有多大意义。想法?

SELECT *
FROM table
WHERE word REGEXP '^[A-D]';

一个正常的between工作得很好,可以使用索引。

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

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

这里有一个sqlfiddle来展示它在概念上的工作原理,并与regexp替代方案进行了比较。查看执行计划,了解如何使用索引。