繁体   English   中英

当您运行查询“ SELECT * FROM table_name WHERE column_name;”时,会发生什么情况?

[英]What is happening when you run the query “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是一个表达式,对于要选择的每一行,其值为true

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM