搜尋

首頁  >  問答  >  主體

MySQL 自動將字串轉換/轉換為數字?

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

這種轉換是如何進行的?

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

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

P粉336536706P粉336536706437 天前732

全部回覆(2)我來回復

  • P粉099145710

    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 了解更多詳細資訊

    回覆
    0
  • P粉330232096

    P粉3302320962023-10-25 00:05:40

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

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

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

    對於您的查詢:

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

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

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

    WHERE id = 0.0

    回覆
    0
  • 取消回覆