sql >> Databáze >  >> RDS >> Mysql

jak mohu porovnat dva řádky a uložit podobnosti dvou řádků do jiného sloupce

Udělal jsem něco podobného, ​​když jsem zacházel s čárkami oddělenými seznamy ID pro emulaci bitových masek. Trik je provést spojení pomocí jako '%,id,% (kde id je klíč v tabulce indexované podle id). Ve vašem případě připojím table_1 k tabulce seřazených celých čísel a výsledek obsahuje řádek pro každé id ve sloupci product_id.

Udělám to jednou pro každé ID, které požadujete, a připojím se k výsledným odvozeným tabulkám, abych našel ty společné.

Zde je dotaz:

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. SQL Server 2005 – Exportujte tabulku programově (spusťte soubor .sql a znovu ji vytvořte)

  2. Velká data s PostgreSQL a Apache Spark

  3. Jak zavolám uloženou proceduru Oracle ze skriptu Excel VBA?

  4. Mysql převést int na MAC