我有一个名为 Post 的表:
title (NULL), content, parent_id (NULL)
标题为空,因为我将其用于线程和回复(回复没有标题,线程没有父级)。
假设我想选择对帖子 x 的所有回复,或者 n 个回复:
SELECT * FROM post
WHERE title IS NULL
AND parent_id = x
或者,
SELECT * FROM post
WHERE title IS NULL
AND parent_id IS NOT NULL
LIMIT 0, 30
如何同时选择回复的标题?例如,如果我选择回复编号 5,它是对帖子 ID# 2 的回复(即 parent_id 为 2),我如何选择编号 2 的标题?
我不想在 mysql 中使用 foreach 循环。
希望这是有道理的。
谢谢。
最佳答案
COALESCE
返回非空参数列表的第一个值。
SELECT post.content, COALESCE(post.title, parent.title) AS title
FROM post
LEFT JOIN post AS parent
ON post.parent_id = parent.id
WHERE post.parent_id = 123
关于php - 从另一行中选择一个值 : mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877031/