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

PHP/MySql Vyberte komentáře seskupené s odpověďmi

Dobře, myslím, že teď mám, co chceš. Verzi MYSQL této funkce nemám jak rychle otestovat, ale verze SQLite funguje skvěle a podle dokumentace by stejně skvěle měla fungovat i MySQL. Možná by to byl lepší způsob, jak to udělat na MySQL.

SQLite:

SELECT a.*, IFNULL( b.Is_Reply_To, a.Comment_ID ) jako Is_Reply_To FROM Komentáře a LEFT JOIN Comments_Reply b MAJÍCÍ (Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID ASC

MySQL

SELECT a.*, IF( IS NULL(b.Is_Reply_To), a.Comment_ID, b.Is_Reply_To ) as Is_Reply_To FROM Comments a LEFT JOIN Comments_Reply b HAVING(Comment_ID) ORDER BY Is_Reply_To ASC, a.Comment_ID kód>

To vytváří tyto výsledky pro můj SQLite.

Comment_ID Is_Reply_to
1          1
10         1
11         1
2          2
12         2
3          3
13         3
14         3
4          4
5          5
6          6
7          7
8          8
9          9
15         15


  1. Konfigurace systému se nepodařilo inicializovat

  2. Způsoby, jak vědět, jak se vypořádat s korupcí databáze na serveru SQL

  3. Nejlepší způsob, jak zkrátit řetězec UTF8 na základě délky bajtu

  4. Jak zpracuji hodnoty NULL v příkazu mysql SELECT ... OUTFILE ve spojení s FIELDS ESCAPED BY? Hodnoty NULL jsou aktuálně zkráceny