4

我有一个包含几列的数据库表。其中一列旨在用作 TINYINT(1) DEFAULT 0 的布尔设置。

我无意中发现,如果你运行这个查询

SELECT * FROM table_name WHERE column_name;

它返回 column_name = 1 的行。

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

4

1 回答 1

2

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

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

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

于 2013-09-26T15:31:03.210 回答