假设我的查询返回以下行:
Project-ID | Parent-ID
1 | 0
2 | 1
15 | 0
16 | 15
17 | 0
18 | 0
19 | 15
项目2是项目1的翻译。 项目16和19是项目15的翻译。到目前为止......非常好。唯一的问题是,我有500个项目,大约有320个翻译,我无法正确订购。有些翻译远离Project-ID。
是否可以将结果更改为
Project-ID | Parent-ID
1 | 1
2 | 1
15 | 15
16 | 15
17 | 17
18 | 18
19 | 15
所以我可以通过Parent-ID订购它们?那就像
Project-ID | Parent-ID
1 | 1
2 | 1
15 | 15
16 | 15
19 | 15
17 | 17
18 | 18
长话短说...我希望将Parent-ID中的0替换为Project-ID ....如果在查询中并且没有PHP则可以。
答案 0 :(得分:1)
使用类似的东西
SELECT
Project-ID,
IF(Parent-ID = 0 , Project-ID,Parent-ID) AS Parent-ID
FROM yourTable
ORDER BY IF(parent_ID = 0, Project_ID, parent_ID);
从@Barmar添加ORDER BY
答案 1 :(得分:1)
如果您只想更改排序,但仍显示0父ID,则可以使用:
ORDER BY IF(parent_ID = 0, Project_ID, parent_ID)
答案 2 :(得分:0)
这是一个简单的UPDATE
查询。要了解更好的更新,请转到here
试试这个:
UPDATE yourtable
SET Parent-Id = Project-ID
WHERE Parent-Id = 0
如果需要,只需更改显示数据(不更改Parent-ID),您可以使用SELECT
语句执行此简单CASE
查询:
SELECT Project-ID,
CASE
WHEN Parent-ID = 0 THEN Project-ID
ELSE Parent-ID
END
FROM yourtable