使用带有子字符串的update语句进行结果更新

mklgxw1f  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(258)

我想根据另一列位于日期范围内的第一个索引值来更新状态。正确的使用方法是什么。

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

这似乎不起作用。有什么问题或者需要修改的地方!还包括工作选择语句

ewm0tg9j

ewm0tg9j1#

以下更新应起作用:

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';

您应该避免将未规范化的日期信息存储为文本,以避免像这样混乱的查询。

相关问题