作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 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/
我是一名优秀的程序员,十分优秀!