SQLite - LIKE 子句



SQLite 的LIKE運算子用於使用萬用字元將文字值與模式匹配。如果搜尋表示式可以與模式表示式匹配,則 LIKE 運算子將返回 true(即 1)。與 LIKE 運算子一起使用有兩個萬用字元:

  • 百分號 (%)
  • 下劃線 (_)

百分號表示零個、一個或多個數字或字元。下劃線表示單個數字或字元。這些符號可以組合使用。

語法

以下是 % 和 _ 的基本語法。

SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or 
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'

您可以使用 AND 或 OR 運算子組合N個條件。此處,XXXX 可以是任何數值或字串值。

示例

下表列出了幾個示例,這些示例顯示了 WHERE 部分具有使用 '%' 和 '_' 運算子的不同 LIKE 子句。

序號 語句和描述
1

WHERE SALARY LIKE '200%'

查詢以 200 開頭的任何值

2

WHERE SALARY LIKE '%200%'

查詢在任何位置包含 200 的任何值

3

WHERE SALARY LIKE '_00%'

查詢在第二位和第三位具有 00 的任何值

4

WHERE SALARY LIKE '2_%_%'

查詢以 2 開頭且至少包含 3 個字元的任何值

5

WHERE SALARY LIKE '%2'

查詢以 2 結尾的任何值

6

WHERE SALARY LIKE '_2%3'

查詢第二位為 2 且以 3 結尾的任何值

7

WHERE SALARY LIKE '2___3'

查詢五位數中以 2 開頭並以 3 結尾的任何值

讓我們來看一個真實的例子,考慮一個名為 COMPANY 的表,其中包含以下記錄。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

以下是一個示例,它將顯示 COMPANY 表中 AGE 以 2 開頭的所有記錄。

sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';

這將產生以下結果。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

以下是一個示例,它將顯示 COMPANY 表中 ADDRESS 在文字中包含連字元 (-) 的所有記錄。

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%-%';

這將產生以下結果。

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0
廣告