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

Chúng ta có thể sử dụng IN () để tìm kiếm giữa các giá trị được phân tách bằng dấu phẩy trong một trường không?

Thay vì IN (), hãy sử dụng FIND_IN_SET để tìm kiếm giữa các giá trị được phân tách bằng dấu phẩy trong một trường. Đầu tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng DemoTable -> (-> ListOfValues ​​text ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,56 giây) 

Chèn một số bản ghi vào bảng bằng lệnh chèn -

 mysql> chèn vào các giá trị DemoTable ('10 | 20 | 30 | 40 | 50 | 60 | 100 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,18 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

 mysql> select * từ DemoTable; 

Điều này sẽ tạo ra kết quả sau -

 + ----------------------- + | ListOfValues ​​| + ----------------------- + | 10 | 20 | 30 | 40 | 50 | 60 | 100 | + ----------------------- + 1 hàng trong bộ (0,00 giây)  

Sau đây là truy vấn để tìm kiếm giữa các giá trị được phân tách bằng dấu phẩy trong một trường -

 mysql> chọn FIND_IN_SET (100, thay thế (ListOfValues, '|', ',')) từ DemoTable; 

Điều này sẽ tạo ra kết quả sau -

 + ---------------------------------------------- --- + | FIND_IN_SET (100, thay thế (ListOfValues, '|', ',')) | + ------------------------------- ------------------ + | 7 | + ----------------------------------------------- - + 1 hàng trong bộ (0,04 giây)