好的, 我对数据库中的某些值有点问题 ,我有 2 种不同类型的值,因为我有 Price (varchar) 列,问题就是这样
[
我尝试将 select price from products order by CAST(price AS SIGNED) asc
但没有结果,因为价格没有“。”排序不是很好
谢谢!
最佳答案
您应该选择DECIMAL
数据类型来存储您的价格值。
为了暂时绕过这个问题,您可以使用以下任何一种方法:
方法一: ...ORDER BY price+0 ASC..
或
方法 2: ...ORDER BY CAST(price AS DECIMAL(18,4))...
注意:
最好将 price
列的数据类型更改为 DECIMAL(18,4)
ALTER TABLE tablename MODIFY price DECIMAL(18,4);
如果您引入此更改,那么您ORDER BY price ASC
就足够了。
关于php - 如何对在mysql中存储为varchar的 float 价格值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40080819/