[英]Java Mysql Order by Price
我正在使用Google cloud mysql v.5.5进行基于Java的开发。
我正在尝试按价格设置的结果数据进行排序,但直到现在,价格都没有被订购。
可以说我的查询是:
SELECT ID, ITEM_NAME, PRICE FROM REFERENCES .... ORDER BY PRICE ASC
表引用包含4个元素。 这些元素的价格为:1、12、12.2和2。
当我运行查询时,我得到的是:
1
12
12.2
2
而且我应该得到:
1
2
12
12.2
知道会发生什么吗?
预先感谢您的宝贵时间,
亲切的问候,
UPDATE1:PRICE列的字段类型是VARCHAR,作为客户端的先决条件,因此无需太多操作。
UPDATE2:价格值包含一个“,”,而不是通常的“。” ,因此即使到目前为止,我的反应仍然不那么混乱,但无论如何都是混乱的。 :(
UPDATE3:另外,我尝试执行以下操作:ORDER BY replace(PRICE,',','')+0 ASC,但这也被证明是不成功的。 :(
听起来price
正在存储为字符串而不是数字。
你可以试试:
order by price + 0
这会将其转换为数字。
尝试这个:
SELECT ID, ITEM_NAME, PRICE FROM REFERENCES ....
ORDER BY cast(PRICE as unsigned) ASC
我敢打赌,价格栏不是数字,而是字母数字。 在这种情况下,排序顺序为字母数字,因此您得到
1
12
12.2
2
因为1 < 2
和12 < 12.2
。
SELECT ID,ITEM_NAME,PRICE FROM REFERENCES .... ORDER BY PRICE ASC
或简单地
选择ID,ITEM_NAME和PRICE(来自参考)....按价格排序
和输出-1 2 12 12.2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.