繁体   English   中英

Java Mysql按价格排序

[英]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 < 212 < 12.2

  • 首先要知道的是。Google Cloud SQL支持并使用MySQL 5.5的所有功能。
  • MYSQL升序排序默认排序查询结果。
  • 您必须将PRICE列设为FLOAT

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM