Mysql从同一个表获取子结果

时间:2018-03-16 04:30:34

标签: mysql

我在MySQL中有一个包含列dataid的表。如果父项具有数据 abcd ,那么所有子项将具有 abcd .xyz xyz abcd 用于表示这是abcd的子项。

目前我正在撰写此查询。

SELECT commentID cid FROM comment {条件} ORDER BY评论。commentDate DESC LIMIT 500

稍后我通过运行(all ids)中的dataid查询来获取孩子。

在同一查询中是否有其他方法可以执行此操作。 MySQL支持CTE,但我在服务器上使用5.6。我怎么能在5.6 MySQL中做到这一点。

蒂姆指出我的情况是错误的,所以我有另一个想法来解决这个问题。

同样的表也有parentid,这意味着我可以通过运行'where parentid = 5'来获得所有孩子

由于

1 个答案:

答案 0 :(得分:0)

以下查询将按父级排序,后跟所有子级:

SELECT ID, dataid
FROM comment
WHERE ...
ORDER BY
    SUBSTRING_INDEX(dataid, '.', 1),    -- sort by group, e.g. abcd
    INSTR(dataid, '.'),                 -- parents before children
    SUBSTRING_INDEX(dataid, '.', -1);   -- sort the children

Demo