![](/img/trans.png)
[英]Select * from table_name where column_nameِ = 'value'
[英]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.