sql >> Databasteknik >  >> RDS >> Mysql

sätta upp en vänlista i mysql

Om din vänskapsrelation är symmetrisk kan du antingen lagra varje par i en separat post:

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

och fråga alla B s vänner gillar det:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

eller lagra användaren med minsta id i det första fältet och det med det största id i den andra:

friend1  friend2
A        B
A        C
B        D

och fråga B s vänner gillar det:

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

Det första alternativet är lite mer effektivt i MySQL , och detta är det enda alternativet om din vänskapsrelation inte är symmetrisk (som på LiveJournal )

Se den här artikeln:



  1. Förhindra att skicka in formuläret igen efter att ha klickat på tillbaka-knappen

  2. ställa in måldatabasversionen för mysql workbench-migrering

  3. Prestanda för tabellvariabler i SQL Server

  4. PL/SQL-samling:Kapslad tabell i Oracle-databas