試圖調試一些似乎返回笛卡爾積的連接,我將等價的ON條件輸入到選擇中。這是一個有效的SQL條件表達式或MySQL錯誤(功能)?
在MySQL
select *
from table
where columnname
似乎表現得好像我打字where columname is not null
。在連接輸入on table.columnname
被接受,但返回LOTS的行。如果我將它更正爲on table1.column=table2.column
,MySQL會做正確的事情,但我的第一個版本肯定是不正確和非法的。 「
推測它會將'columnname'中的值轉換爲布爾值,並返回其計算結果爲true的那些行。 – 2013-03-12 14:34:56
@MartinSmith:MySQL沒有真正的布爾數據類型。它只是將每個不爲零的數字視爲真。因此'從foo中刪除42''將會愉快地刪除表中的所有行而不會抱怨無效的語法。 – 2013-03-12 14:38:48
@a_horse_with_no_name - 字符串怎麼樣?除了「1」以外,他們總是被視爲「假」嗎?似乎來自[這個SQL小提琴](http://sqlfiddle.com/#!2/c252c/2) – 2013-03-12 14:40:47