gpt4 book ai didi

mysql - ORDER BY 货币值

转载 作者:行者123 更新时间:2023-11-29 02:54:26 24 4
gpt4 key购买 nike

我在一个 MySQL 表中有一个 prize_value 列,现在我需要根据它进行排序。该列实际上是 VARCHAR,并附有货币符号。但不是所有的值(value)观。货币符号可以是 USD(美元符号)、POUND 或 INR(卢比符号)。所以目前 order by 不能正常工作。如何在不手动删除货币符号的情况下解决此问题?

下面是列中的一些示例值:

.50
£10
£100
$15
$20
£25
£50
10
₹30

最佳答案

你需要两列:

  • 一个用于值,一个可以排序的 float / double (或整数),用于求和等操作。
  • 一个用于货币(ISO 4217 standard 之后的一个 char(3))用于其他目的(显示、可能转换等)

将值和符号都存储在 varchar 中是没有意义的,特别是因为货币符号的位置因国家/地区而异(可以在开头或结尾),符号和符号之间可能有空格值,或不值等。

话虽这么说,如果你不想改变你的 table ,类似的东西可能会起作用:

ORDER BY CAST(
REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
AS DECIMAL(10,2)
)

关于mysql - ORDER BY 货币值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com