php - 从另一行中选择一个值 : mysql

标签 php mysql

我有一个名为 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/

相关文章:

javascript - Jquery 限制用户每分钟上传 5 个帖子

php - 如何在实例范围内从父类调用同名方法

php - 使用 XPATH(和 PHP)从样式属性中选择背景 url

php - 排序后从列表中获取可排序的 Jquery-ui 数据

php - 通过excel上传数据到Db

php - 将图像从逐行转换为隔行而不损失质量或细节?

php - 重命名上传文件,将新名称发布到数据库

php - 替换字符串 PHP REGEX 中的模式

存储过程中的 MySQL 定义器

php mysql while - 当条件相同时循环