MySQL LIKE IN()


你也可以透過正則表示式(regexp)來實現 MySQL Like IN()。語法如下 -

select *from yourTableName where yourColumName regexp ‘value1|value2|value3……|valueN’;

為了理解以上邏輯,你需要建立一個表。我們先建立一個表 -

mysql> create table INDemo
   -> (
   -> Id int,
   -> Name varchar(100)
   -> );
Query OK, 0 rows affected (0.90 sec)

將一些記錄插入表中。查詢如下 -

mysql> insert into INDemo values(100,'John');
Query OK, 1 row affected (0.13 sec)
mysql> insert into INDemo values(104,'Carol');
Query OK, 1 row affected (0.18 sec)
mysql> insert into INDemo values(108,'David');
Query OK, 1 row affected (0.19 sec)
mysql> insert into INDemo values(112,'Smith');
Query OK, 1 row affected (0.12 sec)
mysql> insert into INDemo values(116,'Johnson');
Query OK, 1 row affected (0.17 sec)
mysql> insert into INDemo values(120,'Sam');
Query OK, 1 row affected (0.16 sec)

現在我們可以透過 SELECT 語句來顯示所有記錄。查詢如下 -

mysql> select *from INDemo;

以下是輸出 -

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |  
| 104  | Carol   |
| 108  | David   |
| 112  | Smith   |
| 116  | Johnson |
| 120  | Sam     |
+------+---------+
6 rows in set (0.00 sec)

使用 regexp,其功能類似於 IN()。你可以使用我在開頭討論過的上述語法。查詢如下 -

mysql> select *from INDemo where Id regexp '112|116|100';

以下是輸出 -

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |
| 112  | Smith   |
| 116  | Johnson |
+------+---------+
3 rows in set (0.21 sec)

你會得到與 IN() 相同的輸出。現在,讓我們透過 IN() 檢查一下。查詢如下 -

mysql> select *from INDemo where Id IN(112,116,100);

以下是輸出

+------+---------+
| Id   | Name    |
+------+---------+
| 100  | John    |
| 112  | Smith   |
| 116  | Johnson |
+------+---------+
3 rows in set (0.00 sec)

正如你在以上輸出中看到的,我們得到了相同的結果。

更新於: 2019 年 7 月 30 日

2K+ 瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.