MySQL 是否會自動將字串轉換轉換為數值?
這種轉換是如何進行的?
鑑於 units.id
是 bigint 類型,該查詢將如何解釋?
SELECT table.* FROM table WHERE id='text'
P粉0991457102023-10-25 00:55:21
預設情況下,MySQL 對 1 和「1」的處理方式相同,但您可以透過將 MySQL 行為設為嚴格模式來變更它。
set @@GLOBAL.sql_mode = "STRICT_ALL_TABLES"; set @@SESSION.sql_mode = "STRICT_ALL_TABLES";
或您可以在 sql_mode = ''
中將 my.cnf 檔案中的這些變數設為永久變數。這樣,如果使用了不正確的類型,MySQL 將會拋出錯誤。
閱讀 http://dev.mysql.com/doc/ refman/5.0/en/server-sql-mode.html 了解更多詳細資訊
P粉3302320962023-10-25 00:05:40
前三個問題的答案是:是、是、否。
當字串'text'
轉換為數字時,它變成值0
。
描述類型轉換的文檔位於此處 .
對於您的查詢:
SELECT table.* FROM table WHERE id='text';
此規則是透過文件摘錄擷取的:
換句話說,這實際上相當於:
WHERE id = 0.0