Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL NHƯ TRONG ()?

Bạn cũng có thể triển khai MySQL Like IN () với sự trợ giúp của Biểu thức chính quy (regexp). Cú pháp như sau -

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

Để hiểu logic trên, bạn cần tạo một bảng. Đầu tiên chúng ta hãy tạo một bảng -

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

Chèn một số bản ghi vào bảng. Truy vấn như sau -

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)

Bây giờ chúng ta có thể hiển thị tất cả các bản ghi với sự trợ giúp của câu lệnh SELECT. Truy vấn như sau -

mysql> select *from INDemo;

Sau đây là kết quả -

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

Sử dụng regexp hoạt động như IN (). Bạn có thể áp dụng cú pháp trên mà tôi đã thảo luận ở phần đầu. Truy vấn như sau -

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

Sau đây là kết quả -

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

Bạn sẽ nhận được cùng một đầu ra với IN (). Bây giờ, chúng ta hãy kiểm tra nó với sự trợ giúp của IN (). Truy vấn như sau -

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

Đây là kết quả

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

Như bạn có thể thấy trong kết quả ở trên, chúng tôi đang nhận được kết quả tương tự.