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

SQL中使用Like命令时如何忽略单引号以正确查询数据

解决SQL LIKE命令中包含单引号的匹配问题

这个问题我之前处理过好几次!单引号在SQL里是用来标记字符串边界的,直接把带单引号的内容写进LIKE条件里,要么会触发语法错误,要么根本匹配不到你想要的结果。下面给你几个实用的解决办法:

方法1:用双单引号转义(最通用)

几乎所有主流SQL数据库(MySQL、SQL Server、PostgreSQL、Oracle等)都支持用两个连续的单引号来表示字符串中的一个普通单引号。针对你的需求,查询语句可以这么写:

SELECT * FROM your_table
WHERE your_column LIKE 'Status changed from ''Closed'' to ''Transferred'''
OR your_column LIKE 'Status changed from ''Resolved'' to ''Transferred'''

原理很简单:把原字符串里的每个'替换成'',SQL就会把它识别为字符串内容的一部分,而不是字符串的结束标记。

方法2:用通配符简化查询

因为你要匹配的两个字符串只有中间的状态值不同,完全可以用%通配符合并成一条LIKE条件,让代码更简洁:

SELECT * FROM your_table
WHERE your_column LIKE 'Status changed from ''%'' to ''Transferred'''

这样就能匹配所有“从任意状态转到Transferred”的记录,刚好覆盖你需要的两种情况。如果之后还要加其他状态,这条语句也不用修改。

方法3:使用ESCAPE关键字(部分数据库支持)

有些数据库允许你自定义转义字符,比如用\来转义单引号,这时可以结合ESCAPE关键字:

-- 以MySQL为例
SELECT * FROM your_table
WHERE your_column LIKE 'Status changed from \'Closed\' to \'Transferred\' ESCAPE '\''

不过这种方式的通用性不如双单引号转义,除非你有特殊需求,否则优先用方法1或2。

另外补充一句:如果你的需求是精确匹配这两个字符串,其实用=代替LIKE也可以,同样只需要转义单引号就行,效率还更高哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:00:02