在sql server中的like statement使用特殊字元,例如: "[]"
2021-02-13 14:55
Last Edited: 2021-03-29 11:00
2,423
假設在一個表裡,字串中帶有括號[],如果用like statement的話只要條件不帶有[],那就沒問題
比如這裡找"末期業績",都找得到正確結果,見第3行 公告及通告 - [末期業績]
可是如果我要用[末期業績]想找回上面第3行公告及通告 - [末期業績],問題就來了
回傳結果完全找不到公告及通告 - [末期業績]
這是因為sql的like是可以用regex方式找的,而這個括號剛好是regex中表示條件的方式,例如[0-9]表示任意0-9的單一字符
所以這裡Like '%[末期業績]%' 其實是在找 title_type包含任何符合[末、期、業、績]四個字的單一字符
仔細一看上面的結果都包含四字之中的任何一個字
所以要正確包含特殊字元"[ ]"時,要在like的後面escape,例如
where title_type like '%[末期業績]%' escape ''
這樣就可以正確包含到特殊字元
Prev Article
MVC Model檢驗(Validation)
MVC Model檢驗(Validation)
Next Article
Dart / flutter筆記
Dart / flutter筆記