gpt4 book ai didi

Mysql通过添加或减去有限制的值来更新以前的值

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:28 25 4
gpt4 key购买 nike

我有这个问题

UPDATE posts_flags
INNER JOIN
users ON (posts_flags.user_id = users.id )
SET
users.credibility = users.credibility + 100 /* or -100 */
WHERE posts_flags.content_id = ?;

是否可以将新值限制在一个范围内,例如 0 - 1000?

最佳答案

您可以添加一个CHECK 约束来避免任何超出允许范围的插入/更新。

CREATE TABLE post_flags
(
credibility INT CHECK (credibility >= 0 AND credibility <= 1000),
);

使用 MAX 给值一个下限,MIN 如果你想在插入/更新时给它一个上限。

UPDATE posts_flags
INNER JOIN
users ON (posts_flags.user_id = users.id )
SET
users.credibility = MAX(MIN(users.credibility + 100, 1000), 0)
WHERE posts_flags.content_id = ?;

https://www.w3schools.com/sql/sql_check.asp
https://www.w3schools.com/sql/func_mysql_min.asp

关于Mysql通过添加或减去有限制的值来更新以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58325529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com