我的博客页面中的 SELECT 查询有一个问题。
当评论状态=1 时,我想要每个博客的评论数。
我正在申请以下查询..
SELECT CONCAT(u.first_name," ",u.last_name) name, r.*,
IF(c.status=1,COUNT(c.id)) as comment
FROM users u
RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOIN comments c ON r.id = c.resource_id
WHERE r.type = 1
AND r.status=1
GROUP BY r.id
ORDER BY r.created_date DESC
LIMIT 0,5
但它给出语法错误..
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your
SQL syntax; check the manual that corresponds to your MariaDB server version for the right
syntax to use near ') as comment FROM users u RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOI' at line 1
请告诉我哪里错了。
谢谢
最佳答案
If 语句包含三个表达式。首先是表达式,其次是条件为真时返回的值,第三个是条件为假时返回的值,因此您缺少第三个表达式。 试试下面的代码
SELECT CONCAT(u.first_name," ",u.last_name) name,r.*,IF(c.status=1,COUNT(c.id), 0) as comment
FROM users u RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOIN comments c ON r.id = c.resource_id
WHERE r.type = 1
AND r.status=1
GROUP BY r.id
ORDER BY r.created_date DESC
LIMIT 0,5
关于mysql - SELECT 查询 IF CONDITION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46643963/