mariadb更新表如果x为空则更新x否则更新y

cgfeq70w  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(247)

我正在工作中做一个短期项目。我需要做一个脚本,从一个表中扩展用户。不管怎样,我不知道如何用一种好的方式写我的请求,下面是我想做的:

UPDATE table SET (IF date_fbulk IS NULL, date_fbulk = NOW(), date_lbulk = NOW())

我尝试了许多不同的方法来做它,但我不能成功,它一直告诉我我有语法错误。
以下是完整的请求:

UPDATE enterprise.gen
SET
  bu_id = (SELECT MAX(b_id) FROM enterprise.bulk),
  IF(date_fbulk IS NULL, date_fbulk = NOW(), date_lbulk = NOW())
ORDER BY RAND() LIMIT 10;

也许你们会有办法解决这个问题。谢谢你的阅读

9rbhqvlz

9rbhqvlz1#

而不是:

IF(date_fbulk IS NULL, date_fbulk = NOW(), date_lbulk = NOW())

试着写:

date_fbulk = COALESCE(date_fbulk, NOW()),
date_lbulk = IF(date_fbulk IS NOT NULL, NOW(), date_lbulk)
``` `COALESCE(date_fbulk, NOW())` 会回来的 `date_fbulk` 如果不为null,则返回 `NOW()` .
完整查询:

UPDATE enterprise.gen
SET
bu_id = (SELECT MAX(b_id) FROM enterprise.bulk),
date_fbulk = COALESCE(date_fbulk, NOW()),
date_lbulk = IF(date_fbulk IS NOT NULL, NOW(), date_lbulk)
ORDER BY RAND() LIMIT 10;

相关问题