所以我是SQL的新手(一般是腳本/編碼),這是來自本書中的一個例子,但不幸的是,他們決定不會有任何關於這個查詢的問題,並忽略了到附近的查詢爲什麼'>'與SQL中的VARCHAR數據有效比較?
這裏結束對「>」擴大是有問題的查詢:
SELECT *
FROM easy_drinks
WHERE main > 'soda';
下面是幾個查詢的引擎收錄,希望給需要的角度來看:http://pastebin.com/xfJQsBvU
DESC粘貼easy_drinks:http://pastebin.com/LZZPhk6Z
我只是因爲查詢結尾處的'>'如何工作而感到困惑,因爲main存儲爲VARCHAR,'soda'絕對不是可以與另一個整數進行比較的整數。但是,正如您在第一個pastebin中看到的,查詢成功完成。爲什麼MySQL不返回錯誤,使用'>'和'<'的不同查詢背後的模式是什麼?
在一個理想的SQL實現中,您可以定義一個從'VARCHAR'繼承的類型(在SQL中稱爲'DOMAIN'),並重載它的操作符,包括'>'。 – onedaywhen 2011-05-27 06:29:02