SELECT * FROM table WHERE comlumn1 = column2;
返回結果。
此:
SELECT * FROM table WHERE column1 != column2;
返回任何內容,即使有在滿足這兩個要求的列的單元格。
原來,第1列是varchar
和第2列是int
。
我的問題是爲什麼沒有錯誤?爲什麼會返回結果而不是其他結果?如果類型不同,肯定它們總是不相等?
UPDATE:
值在column1
爲varchars
像1234-34
和column2
有ints
像1234
。這意味着它會始終匹配,因爲它會將varchar
1234-34
變成1234
。
http://stackoverflow.com/questions/4147215/how-int-database-field-gets-compared-to-varchar-type – MusicLovingIndianGirl
@MusicLovingIndianGirl感謝。這是相似的,但在答案之前,我不知道要尋找這樣的問題。我不會爭論人們尋找這個問題。 另外我的問題是_why_有沒有錯誤沒有_how_類型得到比較。我認爲這是一個不同的問題 – Adzz