Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hướng dẫn sử dụng MySQL:Câu lệnh MySQL IN (Nâng cao)

Việc sử dụng cơ bản của câu lệnh IN MySQL xử lý một cột được so sánh với nhiều giá trị. Ngoài ra còn có một số cách sử dụng nâng cao của câu lệnh MySQL IN tạo ra các trường hợp sử dụng thú vị. Xem xét bảng mẫu user_table trong đó 5 người dùng được chỉ định các quyền khác nhau với tư cách là quản trị viên, cấp trên, v.v. dựa trên các giá trị 1 hoặc 0,

mysql> SELECT * FROM user_table;
+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
|    3      |    0     |       1      |     1    |     1     |
|    4      |    0     |       0      |     0    |     1     |
|    5      |    0     |       0      |     0    |     0     |
+-----------+----------+--------------+----------+-----------+

Trường hợp sử dụng 1:Câu lệnh MySQL IN để so sánh một giá trị với nhiều cột

Cú pháp của nó là:

SELECT * FROM TableName WHERE value IN (column1, column2, column3, column4)

Ví dụ:

mysql> SELECT * FROM user_table WHERE 1 IN (is_admin, is_superuser, is_staff, is_active);

+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
|    3      |    0     |       1      |     1    |     1     |
|    4      |    0     |       0      |     0    |     1     |
+-----------+----------+--------------+----------+-----------+

Câu lệnh IN thông thường chỉ liên quan đến MỘT CỘT đang được so sánh với nhiều giá trị .

SELECT * FROM TableName WHERE column1 IN (1,2,3,4)

Nó hoạt động như

SELECT  * FROM   TableName WHERE  column1 = 1 OR column1 = 2 OR column1 = 3 OR column1 = 4

Tuyên bố này là A VALUE đó là so với nhiều cột

SELECT * FROM TableName WHERE 1 IN (column1, column2, column3, column4)

giống như

SELECT  * FROM   TableName WHERE  column1 = 1 OR column2 = 1 OR column3 = 1 OR column4 = 1

Trường hợp sử dụng 2:Câu lệnh MySQL IN để so sánh nhiều cột với nhiều giá trị

Cú pháp của nó là:

SELECT * FROM TableName WHERE (column1,column2) in ((value1,value2),(value3,value4),..)

Ví dụ:

mysql> SELECT * FROM user_table WHERE (is_staff,is_admin) in ((1,0),(1,1));
+-----------+----------+--------------+----------+-----------+
| user_id   | is_admin | is_superuser | is_staff | is_active |
+-----------+----------+--------------+----------+-----------+
|    1      |    1     |       1      |     1    |     1     |
|    2      |    0     |       1      |     1    |     1     |
+-----------+----------+--------------+----------+-----------+

Nó hoạt động như

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để có được nhiều số với một truy vấn SQL?

  2. Cách lấy ngày và giờ hiện tại trong MySQL

  3. Thay đổi mật khẩu gốc MySQL

  4. Làm cách nào để loại bỏ khoảng trắng đầu và cuối trong trường MySQL?

  5. Tạo người dùng MySQL trên Linux qua Dòng lệnh