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
- mysql> SET @count = 1;
- mysql> SET @count = @count + CAST(rand() * 100 AS SIGNED); // 想要輸出值再加個亂數
- mysql> SELECT @count; // 隨機顯示 並 累加的數字
- 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