sql >> Databasteknik >  >> RDS >> Mysql

@ Symbol - en lösning för rekursiv SELECT-fråga i Mysql?

Jag undrar hela tiden om något sådant här skulle fungera:

select distinct col1, col2
from (select col1, col2,
             @pv:=(case when find_in_set(col3, @pv) then @pv else concat(@pv, ',', col3) 
                   end) as 'col3'
      from table1 join
          (select @pv:='1') tmp
          on find_in_set(col1, @pv) > 0
     ) t

Något sådant här borde fungera för små datamängder. Idén med att lägga alla ID i en sträng är dock begränsad till en strängs kapacitet.



  1. Hur man kommer åt arrayelement

  2. Anropar en lagrad PROCEDUR i Toad

  3. Hänvisa till ett kolumnnamnalias i WHERE-satsen

  4. Jag får ett Ett försök gjordes att ladda ett program med ett felaktigt formatfel på ett SQL Server-replikeringsprojekt