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

Định dạng biến MySQL cho danh sách giá trị NOT IN

Bạn không thể sử dụng IN mệnh đề như vậy. Nó biên dịch thành một đơn chuỗi trong IN của bạn mệnh đề. Nhưng một IN mệnh đề cần riêng biệt giá trị.

WHERE id_campo not in (@idcamposexcluidos)

biên dịch thành

WHERE id_campo not in ('817,803,495')

nhưng nó phải là

WHERE id_campo not in ('817','803','495')

Để khắc phục điều này, hãy sử dụng SQL động hoặc trong MySQL, bạn có thể sử dụng FIND_IN_SET :

SET @idcamposexcluidos='817,803,495';
...
WHERE FIND_IN_SET(id_campo, @idcamposexcluidos) = 0

nhưng sử dụng một hàm như FIND_IN_SET() không thể sử dụng các chỉ mục.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Cách cho phép kết nối từ xa với mysql

  2. Hiệu suất MySQL - 5 tham số từ tệp cấu hình

  3. Thay đổi cột MySQL thành AUTO_INCREMENT

  4. Bảng được chỉ định hai lần, vừa là mục tiêu cho 'CẬP NHẬT' và là nguồn riêng cho dữ liệu trong mysql

  5. 2017 @ Somenines:Kỷ niệm những câu chuyện của khách hàng của chúng tôi