SQL 語法 SELECT LIKE

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

沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料