我有一个包含多个列的数据库表。其中一列用作布局设置,如TINYINT(1)DEFAULT 0。
我意外地发现了如果你运行这个查询
SELECT * FROM table_name WHERE column_name;
返回column_name = 1的行。
我很想知道MySql用来处理这个查询的逻辑。
答案 0 :(得分:2)
正如文档在“选择语法”中所述,(http://dev.mysql.com/doc/refman/5.1/en/select.html)
where_condition是一个表达式,对于要选择的每一行,其计算结果为true
因此简单的列名称被计算为布尔值,并选择相应的行。你会发现它也适用于整数。