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

Chọn truy vấn bằng MySQL IN () và tránh sắp xếp trong đó

Sử dụng IN () sắp xếp kết quả cho trường cụ thể. Để tránh điều này, hãy sử dụng ORDER BY và FIND_IN_SET () cho trường này.

Để hiểu find_in_set (), chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

mysql> create table ProductStock
   -> (
   -> ProductId int,
   -> ProductName varchar(20),
   -> ProductQuantity int,
   -> ProductPrice float
   -> );
Query OK, 0 rows affected (0.79 sec)

Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert. Truy vấn như sau -

mysql> insert into ProductStock values(1,'Product-101',10,500.56);
Query OK, 1 row affected (0.20 sec)
mysql> insert into ProductStock values(25,'Product-111',5,150.00);
Query OK, 1 row affected (0.21 sec)
mysql> insert into ProductStock values(67,'Product-311',7,1000.50);
Query OK, 1 row affected (0.60 sec)
mysql> insert into ProductStock values(55,'Product-561',8,900.00);
Query OK, 1 row affected (0.24 sec)
mysql> insert into ProductStock values(75,'Product-221',15,670.56);
Query OK, 1 row affected (0.14 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from ProductStock;

Đầu ra

+-----------+-------------+-----------------+--------------+
| ProductId | ProductName | ProductQuantity | ProductPrice |
+-----------+-------------+-----------------+--------------+
|         1 | Product-101 |              10 |       500.56 |
|        25 | Product-111 |               5 |          150 |
|        67 | Product-311 |               7 |       1000.5 |
|        55 | Product-561 |               8 |          900 |
|        75 | Product-221 |              15 |       670.56 |
+-----------+-------------+-----------------+--------------+
5 rows in set (0.00 sec)

Đây là truy vấn để sử dụng find_in_set () cho truy vấn của bạn -

mysql> select *from ProductStock
   -> where ProductId IN(25,55,67,75,1)
   -> order by find_in_set(ProductId,'25,55,67,75,1');

Đầu ra

+-----------+-------------+-----------------+--------------+
| ProductId | ProductName | ProductQuantity | ProductPrice |
+-----------+-------------+-----------------+--------------+
|        25 | Product-111 |               5 |          150 |
|        55 | Product-561 |               8 |          900 |
|        67 | Product-311 |               7 |       1000.5 |
|        75 | Product-221 |              15 |       670.56 |
|         1 | Product-101 |              10 |       500.56 |
+-----------+-------------+-----------------+--------------+
5 rows in set (0.31 sec)