pep*_*epe 2 mysql sql conditional if-statement
当提交upvote时,此MySQL将使用户的声誉增加5.
UPDATE user_profiles
SET reputation = reputation +5
WHERE user_id = $question_author_id;
Run Code Online (Sandbox Code Playgroud)
现在我想区分一下:
可以通过表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;
Run Code Online (Sandbox Code Playgroud)
任何人都想告诉我如何使这项工作?
如果在查询中进行逻辑比较,则需要使用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;
Run Code Online (Sandbox Code Playgroud)
沿着这些方向的东西 - 你可能需要稍微触摸一下.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |