sql >> Databasteknik >  >> RDS >> Mysql

mysql för att få rekorddjup, räkna förälder- och förfadersposter

Om du gör många sådana här frågor kanske du upptäcker att en kapslad uppsättningsmodell är mer lämplig än den närliggande lista du frågar om. Det finns en bra diskussion om båda modellerna här .

I vilket fall som helst, för att göra vad du ber om med en angränsande lista, tittar du på antingen rekursion i applikationslagret eller lagrar nivån som en tredje kolumn.

ETA:om ditt antal nivåer inte är särskilt högt kan du göra det med självanslutningar:

t.ex. noder med 2 förfäder:

SELECT t1.node 
FROM mytable AS t1
JOIN mytable AS t2 ON t1.parent = t2.node
JOIN mytable AS t3 ON t2.parent = t3.node
WHERE t3.parent IS NULL;



  1. Mysql innoDB kraschar hela tiden

  2. Inkrementerar ett fält i MySQL atomärt?

  3. De bästa funktionerna att leta efter i ett SQL Server-övervakningsverktyg

  4. Hantera roller och rollattribut i PostgreSQL