假设我的查询返回以下行:
Project-ID | Parent-ID
1 | 0
2 | 1
15 | 0
16 | 15
17 | 0
18 | 0
19 | 15项目2是项目1的翻译,项目16和19是项目15的翻译,所以far...so很好。唯一的问题是,我得到了大约500个项目,大约320种翻译,我无法正确地订购它们。有些翻译离Project很远。
是否可以将结果更改为
Project-ID | Parent-ID
1 | 1
2 | 1
15 | 15
16 | 15
17 | 17
18 | 18
19 | 15这样我就可以按父母身份证订购了?那就就像
Project-ID | Parent-ID
1 | 1
2 | 1
15 | 15
16 | 15
19 | 15
17 | 17
18 | 18长话短说.我想用Project替换0 in父ID.如果可以的话,在查询中不使用PHP。
发布于 2016-12-20 09:19:21
如果您只想更改顺序,但仍然显示0父ID,则可以使用:
ORDER BY IF(parent_ID = 0, Project_ID, parent_ID)发布于 2016-12-20 08:57:17
用这样的东西
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添加订单
发布于 2016-12-20 08:56:24
这是一个简单的UPDATE查询。若要更好地了解更新,请转到这里
试试这个:
UPDATE yourtable
SET Parent-Id = Project-ID
WHERE Parent-Id = 0如果需要,只需更改显示数据(没有更改父-ID),就可以使用SELECT语句执行这个简单的CASE查询:
SELECT Project-ID,
CASE
WHEN Parent-ID = 0 THEN Project-ID
ELSE Parent-ID
END
FROM yourtablehttps://stackoverflow.com/questions/41238193
复制相似问题