gpt4 book ai didi

mysql - 检查 MySql 日期时间是否为空的更好方法

转载 作者:行者123 更新时间:2023-11-30 00:57:44 25 4
gpt4 key购买 nike

我有一个包含deleted_at 日期时间列的表,其默认值为“0000-00-00 00:00:00”。我正在发出一个查询来检查尚未删除的行(具有上述默认值)。有没有更好的方法,而不是通过 where 子句传递该字符串构造?

我做了以下工作,但想看看是否有更好的东西:

SELECT *, (IF(CAST(deleted_at AS time) IS NULL, 0, 1)) AS deleted FROM unicorn WHERE status_id = 1 HAVING deleted = 0;

对比

SELECT * FROM unicorn WHERE status_id = 1 AND deleted_at = '0000-00-00 00:00:00';

最佳答案

如果第二种方法有效(我想不出任何原因),那么我会选择这种方法。当您CAST列时,MySQL 必须先对其进行转换,然后才能运行您的查询,这会产生开销。第二个包含要匹配的实际字符串。尝试在 SELECT 查询上运行 EXPLAIN,您应该会看到差异。

关于mysql - 检查 MySql 日期时间是否为空的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com