MySQL:使用Where子句查询首字母在C到G之间的国家记录
获取首字母从C到G的国家记录
没问题,这有几种实用的MySQL查询写法能满足你的需求,我分别给你说明下:
方法1:使用LEFT函数+BETWEEN操作符
这种方法直观易懂,通过LEFT()函数提取国家名称的首字母,再用BETWEEN限定字符范围:
SELECT * FROM countries WHERE LEFT(country_name, 1) BETWEEN 'C' AND 'G';
注意:如果你的数据库开启了大小写敏感的字符集(比如
utf8_bin),上面的语句只会匹配大写C-G开头的名称。如果要同时兼容大小写,可以统一转换后再比较:SELECT * FROM countries WHERE UPPER(LEFT(country_name, 1)) BETWEEN 'C' AND 'G';
方法2:使用正则表达式(REGEXP)
MySQL支持正则表达式匹配,用REGEXP可以更灵活地匹配首字母范围,默认不区分大小写(可通过BINARY关键字开启严格区分):
SELECT * FROM countries WHERE country_name REGEXP '^[C-G]';
如果需要严格区分大小写,加上BINARY关键字即可:
SELECT * FROM countries WHERE country_name REGEXP BINARY '^[C-G]';
方法3:多LIKE条件组合(适用于小范围场景)
如果首字母范围很小,也可以通过多个LIKE条件组合实现,但这种写法在范围大时不够简洁:
SELECT * FROM countries WHERE country_name LIKE 'C%' OR country_name LIKE 'D%' OR country_name LIKE 'E%' OR country_name LIKE 'F%' OR country_name LIKE 'G%';
内容的提问来源于stack exchange,提问作者abbas
相关产品推荐
相关产品推荐

