当提交upvote时,此MySQL将使用户的声誉增加5。
UPDATE user_profiles
SET reputation = reputation +5
WHERE user_id = $question_author_id;
现在我想区分一下:
可以通过表 forum_qa 字段 forum_qa_parent_id 中存在整数来确定答案。
所以我想出了这个,但它不起作用:
UPDATE user_profiles
IF (SELECT forum_qa_parent_id
FROM forum_qa
WHERE forum_qa_id = $question_id) IS NOT NULL
THEN SET reputation = reputation +10
WHERE user_id = $question_author_id;
ELSE SET reputation = reputation +5
WHERE user_id = $question_author_id;
END IF;
任何人都想告诉我如何使这项工作?
答案 0 :(得分:6)
如果您在查询中进行逻辑比较,则需要使用CASE语句。 http://dev.mysql.com/doc/refman/5.0/en/case-statement.html
UPDATE user_profiles
SET reputation = reputation +
case when (
SELECT forum_qa_parent_id
FROM forum_qa
WHERE forum_qa_id = $question_id) is not null then 10 else 5 end
WHERE user_id = $question_author_id;
沿着这些方向做某事 - 你可能需要稍微接触一下。