使用 LIKE 语句在 MySQL 数据库中搜索 JSON 编码文本
Search JSON encoded text in MySQL database using LIKE statement
我正在尝试修复我们系统中的错误,但我不知道该怎么做。
软件程序在数据库中保存 json 编码文本。
保存的编码文本如下所示。
{"en":"\u57fa\u672c\u7684\u306a\u8105\u5a01\u4fdd\u8b77"}
当我尝试使用 LIKE
查询搜索数据库时,它 return 没有结果。
以下是我的查询:
SELECT p.* FROM Question p WHERE p.deletedAt IS NULL AND p.title LIKE %\u57fa\u672c% AND p.questionType=3;
如果我只使用一个字符,此查询将完美运行。例如,如果我只使用 \u57fa
或 \u672c
,它就可以完美运行。但是组合不起作用。
有人知道为什么会这样吗?
正如@Sammitch 所建议的那样,转义反斜杠非常有效。
此查询有效。
SELECT p.* FROM Question p WHERE p.deletedAt IS NULL AND p.title LIKE %\u57fa\u672c% AND p.questionType=3;
我正在尝试修复我们系统中的错误,但我不知道该怎么做。
软件程序在数据库中保存 json 编码文本。 保存的编码文本如下所示。
{"en":"\u57fa\u672c\u7684\u306a\u8105\u5a01\u4fdd\u8b77"}
当我尝试使用 LIKE
查询搜索数据库时,它 return 没有结果。
以下是我的查询:
SELECT p.* FROM Question p WHERE p.deletedAt IS NULL AND p.title LIKE %\u57fa\u672c% AND p.questionType=3;
如果我只使用一个字符,此查询将完美运行。例如,如果我只使用 \u57fa
或 \u672c
,它就可以完美运行。但是组合不起作用。
有人知道为什么会这样吗?
正如@Sammitch 所建议的那样,转义反斜杠非常有效。
此查询有效。
SELECT p.* FROM Question p WHERE p.deletedAt IS NULL AND p.title LIKE %\u57fa\u672c% AND p.questionType=3;