like 查询中含有特殊字符 和 " 时的问题

当 like 查询中含有特殊字符 和 " 时,可能会出现查询不到结果的问题。

问题描述

以数据库中一个存储 json 字符串的字段为例,需要查询该字段中 totalcount 属性值为 true 的数据。

  • 以下查询可以返回结果:
    select * from task where column_a like '%"totalcount%'
  • 但以下查询却无法返回结果:
    select * from task where column_a like '%"totalcount"%'

原因分析

反斜杠()是 sql 中的转义字符,用于转义具有特殊含义的字符,使其能够表示原本的含义。因此,当 like 中包含反斜杠时,需要对反斜杠进行再次转义才能正确解析。另外,双引号(")也是 sql 中的特殊字符,需要进行转义才能正常使用。

解决方案

要解决此问题,需要对反斜杠和双引号进行转义,可以使用以下方式:

  • 对反斜杠转义: 或者 \
  • 对双引号转义:"

因此,正确的查询语句可以写成:

SELECT * from task where column_a LIKE '%\\"totalCount\\":false%'
登录后复制

其中,反斜杠被转义了两次,双引号也被转义。

以上就是如何在 LIKE 查询中包含特殊字符 `` 和 `"` ?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部