SQL 語法 SELECT 的字串比對 (需注意資料庫字元編碼 Character Sets 與 文字排序 Collations ,請參考資料庫編碼 – https://benjr.tw/102156 )
SELECT * FROM Table1 WHERE col1 LIKE 'abc';
測試環境為 CentOS 7 x86_64 (虛擬機)
LIKE 通常會搭配 % ( 0個到多個任何字元) 或是 _ (任何一個字元).
- % 0個到多個任何字元
檢視使否有 b 開頭的字串 (0 沒有 , 1 有).MariaDB [(none)]> SELECT 'abcde' LIKE 'b%'; +-------------------+ | 'abcde' LIKE 'b%' | +-------------------+ | 0 | +-------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> SELECT 'bcde' LIKE 'b%'; +------------------+ | 'bcde' LIKE 'b%' | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec)
搜尋 e 結尾的字串 (0 沒有 , 1 有).
MariaDB [(none)]> SELECT 'abcde' LIKE '%e'; +-------------------+ | 'abcde' LIKE '%e' | +-------------------+ | 1 | +-------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> SELECT 'abcd' LIKE '%e'; +------------------+ | 'abcd' LIKE '%e' | +------------------+ | 0 | +------------------+ 1 row in set (0.00 sec)
前後可同時使用 % ,搜尋含有 e 的字串 (0 沒有 , 1 有).
MariaDB [(none)]> SELECT 'abcde' LIKE '%e%'; +--------------------+ | 'abcde' LIKE '%e%' | +--------------------+ | 1 | +--------------------+ 1 row in set (0.00 sec)
- _ 任何一個字元
搜尋任何三個字元的字串.MariaDB [(none)]> SELECT 'abcde' LIKE '___'; +--------------------+ | 'abcde' LIKE '___' | +--------------------+ | 0 | +--------------------+ 1 row in set (0.00 sec) MariaDB [(none)]> SELECT 'abc' LIKE '___'; +------------------+ | 'abc' LIKE '___' | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec)
需要共複雜的比對請參考 REGEXP (正規表示式) – https://benjr.tw/101701
沒有解決問題,試試搜尋本站其他內容