如何使用 MySQL 查询以某个字母开头的所有记录,范围从一个字母到另一个字母?例如,我想找到首字母在 a-f 之间的所有条目。
比赛: 艾伯特 唐纳德 弗兰克
不匹配: 莎拉 热巴 托马斯
我可以用数字
SELECT * FROM table WHERE id >= int AND id <= int
或者使用between语句。我如何使用数据库中每个单词的第一个字母来使用字母来做到这一点?
最佳答案
您应该可以在这里使用一个范围。要覆盖 a
并包括 f
,无论大小写如何,我们可以尝试:
SELECT *
FROM yourTable
WHERE (name >= 'a' AND name < 'g') OR (name >= 'A' AND name < 'G');
Demo
请注意,这种方法保留了 MySQL 能够使用可能存在于 name
列上的索引的可能性。
正如@John 在下面评论的那样,如果您没有使用区分大小写的排序规则,那么我们可以将上述查询简化为:
SELECT *
FROM yourTable
WHERE name >= 'a' AND name < 'g';
关于mysql - 如何从 MySQL 数据库中获取字符之间的匹配结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52772356/