sql >> Database >  >> RDS >> Mysql

hoe vergelijk ik twee rijen en sla de overeenkomsten van de twee rijen op in een andere kolom?

Ik heb iets soortgelijks gedaan door door komma's gescheiden lijsten met ID's te behandelen om bitmaskers te emuleren. De truc is om een ​​join te doen met '%,id,% (waarbij id de sleutel is in een tabel die is geïndexeerd door id). Voor jouw geval voeg ik table_1 toe aan een tabel met opeenvolgende gehele getallen en het resultaat bevat een rij voor elke id in je product_id-kolom.

Ik doe dit één keer voor elke id die je aanvraagt ​​en voeg de resulterende afgeleide tabellen samen om de algemene te vinden.

Hier is de vraag:

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. MS Access:voor- en nadelen

  2. AVG ophalen waarbij nul- of nulwaarden worden genegeerd

  3. Hoe bescherm ik mijn forum tegen spam?

  4. rare karakters zoals ‪ ‬ ‏