Я работаю над краткосрочным проектом на работе. Мне нужно сделать скрипт для увеличения количества пользователей из таблицы. Во всяком случае, я не знаю, как правильно написать свой запрос, вот что я хочу сделать:
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;
Может быть, вы, ребята, поймете, как это решить. Спасибо за прочтение
Вместо:
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
если он не 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;