SELECT 欄位 FROM 資料表 WHERE 欄位 LIKE 條件;
| 符號 | 意義 | 範例 | 匹配結果 |
|---|---|---|---|
| % | 任意 0 或多字元 | LIKE '%三%' | 張三、張貓三、三腳貓、唐三藏 |
| _ | 單一任意字元 | LIKE '_三_' | 唐三藏 (三字中間是三) |
| [字元清單] | 括號內任一字元 | LIKE '[張李王]三' | 張三、李三、王三 |
| [^字元清單] | 非括號內字元 | LIKE '[^張李王]三' | 趙三、孫三 |
LIKE 'Mc%' -- 以 Mc 開頭
LIKE '%inger' -- 以 inger 結尾
LIKE '%en%' -- 含 en
LIKE '_heryl' -- 六字元、以 heryl 結尾 (Cheryl, Sheryl)
LIKE '[CK]ars[eo]n' -- Carsen, Karsen, Carson, Karson
LIKE '[M-Z]inger' -- 以 M-Z 開頭、inger 結尾
LIKE 'M[^c]%' -- 以 M 開頭、第二字元非 c
-- 郵遞區號查詢:依關鍵字搜尋地址/城市/省份
sql = "SELECT * FROM zipcode " & _
"WHERE (address LIKE '%" & zipcode_key & "%') " & _
" OR (city LIKE '%" & zipcode_key & "%') " & _
" OR (province LIKE '%" & zipcode_key & "%') " & _
"ORDER BY province, city, address"
SELECT * FROM Questions
WHERE QTitle LIKE '%[' + @KeyWord + ']%' AND IsFinish = @IsFinish;
-- 成對方括號為關鍵書寫格式
Function sqlencode(str)
str = Replace(str, "[", "[[]") ' 必須最先處理
str = Replace(str, "_", "[_]")
str = Replace(str, "%", "[%]")
sqlencode = str
End Function
查詢前先呼叫 sqlencode(關鍵字),可正確搜尋含 %、_、[ 的字串。
| 資料庫 | 萬用字元 | 範例 |
|---|---|---|
| Access | * (多字元), ? (單字元) | LIKE '*b*' |
| SQL Server | % (多字元), _ (單字元) | LIKE '%b%' |
重要: 程式碼中 (ADO/ADO.NET) 仍需使用 SQL Server 語法 (%、_),僅在 Access 查詢視窗測試時用 */?。
WHERE name LIKE '老[^1-4]' -- 字串常值必須用單引號包裹