【问题标题】:Has MySQL always supported shorthand validation for fields?MySQL 是否一直支持字段的速记验证?
【发布时间】:2011-10-29 12:03:25
【问题描述】:

我目前正在编写大量 MySQL 查询,并注意到我可以使用速记验证,如下所示:

SELECT id, content, date_added FROM table WHERE date_added

(其中 date_added 是一个默认的 NULL 时间戳,我不必特别询问它是否不是 NULL 来返回所有具有时间戳的结果)

我只需要知道是否建议不要这样做,或者这个速记功能是否在某个 MySQL 版本中可用,因为我想保留向后兼容性。 我之前确定这不起作用,我必须写出整个条件,但现在我无法确认。

【问题讨论】:

    标签: mysql shorthand


    【解决方案1】:

    我实际上理解您的术语速记验证的意思,感谢您指出这一点......我已经使用“WHERE 1”来开始 PHP 中的“WHERE 子句变量”,灵感来自 phpMyAdmin 的查询已经使用了很长一段时间了,所以也许这至少在某种程度上回答了你的问题......

    这是从 2004 年开始的: http://forums.devshed.com/mysql-help-4/phpmyadmin-where-1t-112118.html

    【讨论】:

    • 刚发现这种东西也可以:SELECT * FROM MAIL_SUBSCRIBER WHERE !UNSUBSCRIBED ...我的意思是它是有道理的,只是以前从未理会它...
    • (在这种情况下,UNSUBSCRIBED 是 0 或 1,因此它甚至适用于 NULL/NOT NULL 之外)
    【解决方案2】:

    我不会将其称为“速记验证”。我不确定你从哪里得到的。

    WHERE 子句只是用来检查真实性。 NULL 不是 TRUE 值,所有其他非零值都是 TRUE

    即使这对您有用,我仍然强烈建议您不要这样做。我赞成非常明确的数据库查询。我们这里不需要任何附加的巫术……

    坚持

    SELECT id, content, date_added
    FROM table
    WHERE date_added IS NOT NULL;
    

    【讨论】:

    • 谢谢,我不知道你会怎么称呼它,我只是把它看作是简写,我想验证给定的字段,我的错
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2013-07-10
    • 1970-01-01
    相关资源
    最近更新 更多