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

nastavení seznamu přátel v mysql

Pokud je váš přátelský vztah symetrický, můžete každý pár uložit do samostatného záznamu:

friend1 friend2
A       B
B       A
A       C
B       D
C       B
D       B

a dotazujte se na všechny B Přátelé uživatele:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

nebo uložit uživatele s nejmenším id v prvním poli a to s největším id ve druhém:

friend1  friend2
A        B
A        C
B        D

a dotaz B Přátelé uživatele:

SELECT  friend1
FROM    friends
WHERE   friend2 = 'B'
UNION ALL
SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

První možnost je v MySQL o něco efektivnější , a toto je jediná možnost, pokud váš přátelský vztah není symetrický (jako na LiveJournal )

Viz tento článek:



  1. PostgreSQL -musí se objevit v klauzuli GROUP BY nebo být použit v agregační funkci

  2. Uložte a iterujte výsledek dotazu v mysqli

  3. Pochopení vstupního výstupního systému Hadoop

  4. Jak funguje REGEXP_INSTR() v MariaDB