Используйте оператор UPDATE с SUBSTRING для обновления результата - PullRequest
0 голосов
/ 21 сентября 2018

Я хочу обновить статус, основываясь на первом значении индекса другого столбца, которое находится в диапазоне дат.Как правильно это использовать.

UPDATE `store_results`
SET `results_status` = "unpublished"
WHERE CONCAT(SUBSTRING_INDEX(`results_trigger_on`,' ',1) AS resultdate
    FROM `store_results` HAVING resultdate BETWEEN '15/09/2018' AND '20/09/2018')

SELECT *,CONCAT(SUBSTRING_INDEX(`store_results_trigger_on`,' ',1)) AS resultdate FROM `store_results` WHERE `store_results_status` = '$status' HAVING  resultdate BETWEEN '$startdate' AND '$enddate' ORDER BY `store_results_id` DESC

Кажется, это не работает.Что в этом плохого или что нужно изменить!Также включен рабочий выбор ЗАЯВЛЕНИЕ

1 Ответ

0 голосов
/ 21 сентября 2018

Должно работать следующее обновление:

UPDATE store_results
SET results_status = 'unpublished'
WHERE
    STR_TO_DATE(SUBSTRING_INDEX(results_trigger_on, ' ', 1), '%d/%m/%Y') BETWEEN
        '2018-09-15' AND '2018-09-20';

Следует избегать хранения ненормализованной информации о дате в виде текста в будущем, чтобы избежать таких беспорядочных запросов, как этот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...