[英]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.