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

làm cách nào để so sánh hai hàng và lưu trữ điểm giống nhau của hai hàng trong một cột khác

Tôi đã làm điều gì đó tương tự xử lý danh sách ID được phân tách bằng dấu phẩy để mô phỏng mặt nạ bit. Thủ thuật là thực hiện một phép nối bằng cách sử dụng như '%, id,% (trong đó id là khóa trong bảng được lập chỉ mục bởi id). Đối với trường hợp của bạn, tôi nối table_1 với một bảng gồm các số nguyên được sắp xếp theo thứ tự và kết quả bao gồm một hàng cho mọi id trong cột product_id của bạn.

Tôi thực hiện việc này một lần cho mỗi id bạn đang yêu cầu và tham gia các bảng dẫn xuất kết quả để tìm các id chung.

Đây là truy vấn:

SELECT p1.id, p1.name name1,p2.name name2, GROUP_CONCAT(p1.N) similarities
FROM (
SELECT *
 FROM table_1 t1
JOIN sequence8 s8 on CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%') 

WHERE t1.id =1
) p1
JOIN 
(
SELECT *
 FROM table_1 t1
JOIN sequence8 s8 ON CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%') 

WHERE t1.id =4
) p2 ON p2.n = p1.n
GROUP BY p1.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kết hợp hai bảng và hiển thị dữ liệu của chúng trong một mảng

  2. Python &MySql:Unicode và mã hóa

  3. Chạy nhiều tập lệnh PHP cùng lúc (vấn đề về vòng lặp cơ sở dữ liệu)

  4. SQL:NOT IN thay thế để chọn hàng dựa trên giá trị của các hàng * khác nhau *?

  5. số lượng trùng lặp mysql