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

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

like 查詢中含有特殊字符 和 ” 時的問題

當 like 查詢中含有特殊字符 和 ” 時,可能會出現(xiàn)查詢不到結(jié)果的問題。

問題描述

數(shù)據(jù)庫中一個存儲 json 字符串的字段為例,需要查詢該字段中 totalcount 屬性值為 true 的數(shù)據(jù)。

  • 以下查詢可以返回結(jié)果:
    select * from task where column_a like ‘%”totalcount%’
  • 但以下查詢卻無法返回結(jié)果:
    select * from task where column_a like ‘%”totalcount”%’

原因分析

反斜杠()是 sql 中的轉(zhuǎn)義字符,用于轉(zhuǎn)義具有特殊含義的字符,使其能夠表示原本的含義。因此,當 like 中包含反斜杠時,需要對反斜杠進行再次轉(zhuǎn)義才能正確解析。另外,雙引號(”)也是 sql 中的特殊字符,需要進行轉(zhuǎn)義才能正常使用。

解決方案

要解決此問題,需要對反斜杠和雙引號進行轉(zhuǎn)義,可以使用以下方式:

  • 對反斜杠轉(zhuǎn)義: 或者
  • 對雙引號轉(zhuǎn)義:”

因此,正確的查詢語句可以寫成:

SELECT * from task where column_a LIKE '%\"totalCount\":false%'

其中,反斜杠被轉(zhuǎn)義了兩次,雙引號也被轉(zhuǎn)義。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享