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

Có thể có một cột MySQL chứa nhiều giá trị làm khóa ngoại không?

Nếu bạn không muốn tạo bảng "người trung gian" để liên kết hai bảng, bạn có thể có giá trị được phân tách bằng dấu phẩy trong trường, bạn chỉ cần sử dụng find_in_set hàm mysql khi thực hiện truy vấn

SỬ DỤNG find_in_set

SELECT
   log.user_id, log.activity_id, log.tags,
   GROUP_CONCAT(tags.name) as taggedNames //This assumes there is a field called `name` in tags table
FROM
   log
LEFT JOIN tags
ON
   FIND_IN_SET(tags.tag_id,log.tags)
GROUP BY
   log.activity_id

GROUP_CONCAT sẽ nhóm một trường lại với nhau và phân tách chúng bằng dấu phân cách, mặc định là ,




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để xem một truy vấn đã chuẩn bị vì nó sẽ được thực thi trên cơ sở dữ liệu không?

  2. Chọn ngày sớm nhất và muộn nhất

  3. Gắn thẻ phân cấp trong SQL

  4. Kết nối Mysql bị từ chối trên localhost

  5. Lấy dữ liệu từ mysql sang StreamBuilder Flutter