首页 > 文章列表 > 如何在 LIKE 查询中包含特殊字符 `\` 和 `"` ?

如何在 LIKE 查询中包含特殊字符 `\` 和 `"` ?

433 2025-01-24

如何在 LIKE 查询中包含特殊字符 `` 和 `

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%'

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

来源:1731140323