mysql - 如何从 MySQL 数据库中获取字符之间的匹配结果?

标签 mysql between

如何使用 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/

相关文章:

MySQL日期格式更改

php - ü 等外来字符不要进入 Mysql

mysql - 请帮我优化这个 MySQL SELECT 语句

mysql - SQL:插入table_b,其中table_a没有相关行?

mysql - 获取日期范围内的最大数据而不重复MYSQL

javascript - 像在 mysql 中一样在环回中使用 between

mysql内连接返回空值,

sqlite - 使用Sqlite Flutter BETWEEN查询返回最近2天的记录

php - 如果某些列数据与原始查询不准确,如何阻止其显示?

php - 在 php 中的一个字段中输入值并将另一个字段留空会得到错误的结果