MySQL 輸出 FLOAT、CHAR 強制轉換成 INT 或其它型態

MySQL rand() 預設是浮點數(float / double),但是想要取整數的話,可以怎麼做呢?

  • mysql> SELECT rand(); // 0.519057333021478

MySQL 輸出 FLOAT、CHAR 強制轉換成 INT 或其它型態

MySQL CAST() Function 可以做型態轉換,只是每個用法都需要看文件試試看。

  • BINARY[(N)]
  • CHAR[(N)]
  • DATE
  • DATETIME
  • DECIMAL[(M[,D])]
  • SIGNED [INTEGER]
  • TIME
  • UNSIGNED [INTEGER]

MySQL 使用 CAST 強制轉換成 INT

  1. mysql> SET @count = 1;
  2. mysql> SET @count = @count + CAST(rand() * 100 AS SIGNED); // 想要輸出值再加個亂數
  3. mysql> SELECT @count; // 隨機顯示 並 累加的數字
  4. mysql> SELECT CAST(rand() * 100 AS SIGNED); // 25、20 ... 隨機顯示

MySQL 使用 CAST 轉換 與 加減

  • mysql> SELECT 1 - 2; // -1
  • mysql> SELECT CAST(1 - 2 AS UNSIGNED); // 18446744073709551615
  • mysql> SELECT CAST(CAST(1 - 2 AS UNSIGNED) AS SIGNED); // -1
  • mysql> SELECT CAST(1 AS UNSIGNED) - 2.0; // -1.0

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料