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

Vấn đề Mysql WHERE với danh sách được phân tách bằng dấu phẩy

Giải pháp ngắn hạn

Sử dụng Hàm FIND_IN_SET :

SELECT uid 
  FROM tbl 
 WHERE FIND_IN_SET('401', artist_list) > 0

Giải pháp dài hạn

Chuẩn hóa dữ liệu của bạn - đây dường như là một mối quan hệ nhiều-nhiều liên quan đến hai bảng. Danh sách được phân tách bằng dấu phẩy cần được chuyển thành một bảng của riêng nó:

ARTIST_LIST

  • artist_id (khóa chính, khóa ngoại của ARTIST)
  • uid (khóa chính, khóa ngoài của TBL)


  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 để sửa các chuỗi UTF-8 được mã hóa kép nằm trong các trường MySQL utf8_general_ci?

  2. MySql và vấn đề chèn ID cuối cùng vẫn còn

  3. Thiết lập cơ sở dữ liệu và tạo người dùng chỉ đọc trong AWS Redshift và Mysql

  4. (nhà cung cấp:Nhà cung cấp đường ống được đặt tên, lỗi:40 - Không thể mở kết nối với SQL Server)

  5. MySQL trong đám mây - Ưu và nhược điểm của Amazon RDS