我正在做一个短期项目。我需要做一个脚本来填充表中的用户。 无论如何,我不知道如何以一种好的方式写下我的请求,这就是我想做的事情:
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;
我尝试了很多不同的方法,但我不能成功,它一直告诉我我的语法错误。
以下是完整的请求:
cacheDom
也许你们会对如何解决这个问题有所了解。 感谢您的阅读
答案 0 :(得分:0)
而不是:
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
,否则会返回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;