在sql server中的like statement使用特殊字元,例如: "[]"
2021-02-13 02:55
Last Edited: 2021-02-16 06:26
19
假設在一個表裡,字串中帶有括號[],如果用like statement的話只要條件不帶有[],那就沒問題
比如這裡找"末期業績",都找得到正確結果
可是如果是帶著括號找"[末期業績]",就會有問題
回傳結果完全找不到末期業績
這是因為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)