CAST DECIMAL to INT

后端 未结 10 2321
攒了一身酷
攒了一身酷 2020-12-13 01:49

I\'m trying to do this:

SELECT CAST(columnName AS INT), moreColumns, etc
FROM myTable
WHERE ...

I\'ve looked at the help FAQs here: http://

10条回答
  •  -上瘾入骨i
    2020-12-13 02:09

    A more optimized way in mysql for this purpose*:

    SELECT columnName DIV 1 AS columnName, moreColumns, etc
    FROM myTable
    WHERE ...
    

    Using DIV 1 is a huge speed improvement over FLOOR, not to mention string based functions like FORMAT

    mysql> SELECT BENCHMARK(10000000,1234567 DIV 7) ;
    +-----------------------------------+
    | BENCHMARK(10000000,1234567 DIV 7) |
    +-----------------------------------+
    |                                 0 |
    +-----------------------------------+
    1 row in set (0.83 sec)
    
    mysql> SELECT BENCHMARK(10000000,1234567 / 7) ;
    +---------------------------------+
    | BENCHMARK(10000000,1234567 / 7) |
    +---------------------------------+
    |                               0 |
    +---------------------------------+
    1 row in set (7.26 sec)
    
    mysql> SELECT BENCHMARK(10000000,FLOOR(1234567 / 7)) ;
    +----------------------------------------+
    | BENCHMARK(10000000,FLOOR(1234567 / 7)) |
    +----------------------------------------+
    |                                      0 |
    +----------------------------------------+
    1 row in set (8.80 sec)
    

    (*) NOTE: As pointed by Grbts, be aware of the behaviour of DIV 1 when used with non unsigned/positive values.

提交回复
热议问题