mysql – 运行查询“SELECT * FROM table_name WHERE column_name;”时发生了什么?

我有一个包含多个列的数据库表.其中一列用作布局设置,如TINYINT(1)DEFAULT 0.

我意外地发现,如果你运行这个查询

SELECT * FROM table_name WHERE column_name;

它返回column_name = 1的行.

我很想知道MySql用来处理这个查询的逻辑.

最佳答案 正如文档在“选择语法”中所述,(
http://dev.mysql.com/doc/refman/5.1/en/select.html)

where_condition is an expression that evaluates to true for each row to be selected

因此,简单列名称将被计算为布尔值,并选择相应的行.你会发现它也适用于整数.

点赞