我有一个专栏 meta_entry 类型 longtext 里面有两个条目 $1.000.00 以及 $54.00 当我跑的时候 SUM(SUBSTRING(meta_value, 2)) 我明白了 55 因为它不把第一条读作 1000 更确切地说,它读作 1 因为 . 之后 1 如何编写忽略句点的查询,同时仍将句点保留在数字的末尾(在美分之前)?
meta_entry
longtext
$1.000.00
$54.00
SUM(SUBSTRING(meta_value, 2))
55
1000
1
.
cld4siwp1#
鉴于:
mysql> select * from stuff; +------------+ | meta_entry | +------------+ | $1.000.00 | | $54.00 | +------------+ 2 rows in set (0.00 sec)
以下查询产生:
mysql> select sum(replace(substring(meta_entry, 2), '.', '')) / 100 from stuff; +-------------------------------------------------------+ | sum(replace(substring(meta_entry, 2), '.', '')) / 100 | +-------------------------------------------------------+ | 1054 | +-------------------------------------------------------+ 1 row in set (0.00 sec)
当然,如果你必须把那几分钱放在最后的话,你还需要更多的钱,在这种情况下,这个又大又长又丑的东西可以满足你的需要:
mysql> select format(cast(sum(replace(substring(meta_entry, 2), '.', '')) as decimal) / 100, 2) as sum from stuff; +----------+ | sum | +----------+ | 1,054.00 | +----------+ 1 row in set (0.00 sec)
1条答案
按热度按时间cld4siwp1#
鉴于:
以下查询产生:
当然,如果你必须把那几分钱放在最后的话,你还需要更多的钱,在这种情况下,这个又大又长又丑的东西可以满足你的需要: