You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL查询仅返回包含指定小写字母的名称?

问题原因

  • 你在查询中使用了LOWER(Name)将Name字段的所有字符统一转为小写后再做匹配,原本字段中的大写U会被转换为小写u,完全命中%u%的匹配规则,自然会返回仅含大写U的记录。
  • 额外的潜在影响因素:如果你的库、表或者Name字段的排序规则(collation)设置为不区分大小写(后缀一般带ci标识,比如常见的utf8_general_ci),即便不调用LOWER函数,直接写Name LIKE "%u%"也会匹配到含大写U的记录。

修正方案

你需要强制查询时区分大小写匹配,不同数据库的常用写法如下:

  • MySQL / MariaDB:使用BINARY关键字强制二进制比较
SELECT *
FROM County
WHERE Name LIKE BINARY "%u%";
  • SQL Server:通过COLLATE指定区分大小写的排序规则
SELECT *
FROM County
WHERE Name COLLATE SQL_Latin1_General_CP1_CS_AS LIKE "%u%";
  • PostgreSQL:直接使用区分大小写的正则匹配运算符~
SELECT *
FROM County
WHERE Name ~ 'u';

内容的提问来源于stack exchange,提问作者nostrad0muz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:54:03