MYSQL-从低到高的短货币值(例如$2.50)列,其中field type=VARCHAR

MYSQL-从低到高的短货币值(例如$2.50)列,其中field type=VARCHAR,mysql,Mysql,我使用phpmyadmin。 我有一个价格表和一个价格栏。列字段type=VARCHAR,原因是有时我会添加一些值,比如Pending 问题是: 有没有办法按现场价格订购 而不是像这样的结果: $10.55 $15.20 $55.00 $9.20 但是: $9.20 $10.55 $15.20 $55.00 *是否可以将列作为十进制查询?我的意思是只将其视为十进制,而不是实际更改字段类型。是的,您可以通过去掉前导的美元符号将值转换为数字。在MySQL中,只需将结果视为一个数字即可进行转换。我经常

我使用phpmyadmin。 我有一个价格表和一个价格栏。列字段type=VARCHAR,原因是有时我会添加一些值,比如Pending 问题是: 有没有办法按现场价格订购 而不是像这样的结果: $10.55 $15.20 $55.00 $9.20 但是: $9.20 $10.55 $15.20 $55.00
*是否可以将列作为十进制查询?我的意思是只将其视为十进制,而不是实际更改字段类型。

是的,您可以通过去掉前导的美元符号将值转换为数字。在MySQL中,只需将结果视为一个数字即可进行转换。我经常加零:

order by replace(price, '$', '') + 0

请注意,诸如“PENDING”之类的字符串将转换为0。

这不是一个好做法。挂起的信息不应在数据库值中执行,而应在应用程序中执行。将您的价格设置为允许空值。然后在应用程序中,当您读取此数据时,如果price_usd为空,则将其显示为挂起

这就是它最好的工作方式


希望这能有所帮助。

如果你想要好的性能,不要。如果你只是想要方便而不需要速度,可以。