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

时间:2013-09-26 15:11:49

标签: mysql sql

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

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

SELECT * FROM table_name WHERE column_name;

返回column_name = 1的行。

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

1 个答案:

答案 0 :(得分:2)

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

  

where_condition是一个表达式,对于要选择的每一行,其计算结果为true

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