MySQL 自動將字串轉換/轉換為數字?
P粉336536706
P粉336536706 2023-10-24 08:36:29

MySQL 是否會自動將字串轉換轉換為數值?

這種轉換是如何進行的?

  • '1234'=1234 ?
  • '1abc' = 1 ?
  • '文本' = 1 ?

鑑於 units.id 是 bigint 類型,該查詢將如何解釋?

SELECT table.* 
FROM table 
WHERE id='text'

P粉336536706
P粉336536706

全部回覆(2)
P粉099145710

預設情況下,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粉330232096

前三個問題的答案是:是、是、否。

當字串'text'轉換為數字時,它變成值0

描述類型轉換的文檔位於此處 .

對於您的查詢:

SELECT table.* 
FROM table 
WHERE id='text';

此規則是透過文件摘錄擷取的:

換句話說,這實際上相當於:

WHERE id = 0.0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!