當要查找的字串本身含有 %、_、[、] 等通配符時,有兩種標準做法:
-- 找出含有「5%」的字串,指定 / 為轉義字元
WHERE ColumnA LIKE '%5/%%' ESCAPE '/';
-- 解析:前後 % 為通配符,/ 後的 % 視為字面字元
-- 找出含有「-」字面字元(非範圍運算子)
WHERE ColumnA LIKE '9[-]5';
-- 方括號內常見用法對照表
LIKE '5[%]' -- 字面 "5%"
LIKE '5%' -- 5 開頭任意字串
LIKE '[_]n' -- 字面 "_n"
LIKE '_n' -- 任意單字元 + n (an, in, on...)
LIKE '[a-cdf]' -- a,b,c,d,f 任一字元
LIKE '[-acdf]' -- -,a,c,d,f 任一字元 (連字號置首視為字面)
LIKE '[[]' -- 字面 "["
LIKE '[]]' -- 字面 "]"
假設資料表 PersonalMember,欄位 strloginname。
SELECT strloginname, *
FROM dbo.PersonalMember
WHERE strloginname LIKE '%[[]%';
SELECT strloginname, *
FROM PersonalMember
WHERE strloginname LIKE '%/[%' ESCAPE '/';
SELECT strloginname, *
FROM dbo.PersonalMember
WHERE CHARINDEX('[', strloginname) > 0;
SELECT strloginname, *
FROM PersonalMember
WHERE strloginname LIKE '%[%' ESCAPE '';
LIKE '字首%'。依團隊編碼風格統一選擇,並加上註解說明轉義規則,避免後續維護誤判。