gpt4 book ai didi

mysql - 如何使 IF 语句在 SQL 级别检查是否为空?

转载 作者:行者123 更新时间:2023-11-29 05:27:30 25 4
gpt4 key购买 nike

我有 UPDATE SQL 语句(像 Dibi 引擎)来更改用户点数和日期。需要一个声明。问题是,我不知道如何在 SQL 级别(不是 PHP)的一个 SQL 查询中使用和检查 IF 语句

所以我想要的是,如果 paid_to IS NULL,它将是:

dbIndex::query("UPDATE s3n_users SET points = %i, paid_to = DATE_ADD(paid_to, INTERVAL $points MONTH) WHERE id_user = %i", $points, $id_user)->result();

否则,如果 paid_to IS NOT NULL,它将是:

dbIndex::query("UPDATE s3n_users SET points = %i, paid_to = DATE_ADD(CURDATE(), INTERVAL $points MONTH) WHERE id_user = %i", $points, $id_user)->result();

我知道,我会用 PHP 解决这个问题,但当然,SQL 中的一个语句会更快。因为在 PHP 中,我们必须在检查 NULL 或 NOT NULL 之前使用 SELECT。我们为什么要添加另一件事?

最佳答案

dbIndex::query("UPDATE s3n_users SET points = %i, 
paid_to = IF(paid_to IS NULL,
DATE_ADD(paid_to, INTERVAL $points MONTH),
DATE_ADD(month, 1, GETDATE()))
WHERE id_user = %i", $points, $id_user)->result();

参见 http://dev.mysql.com/doc/refman/5.6/en/control-flow-functions.html#function_if了解更多详情。

关于mysql - 如何使 IF 语句在 SQL 级别检查是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454081/

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