Java Mysql按价格排序

时间:2013-12-17 15:57:24

标签: mysql sql

我使用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替换(PRICE,',','')+ 0 ASC,但事实证明这也是不成功的。 :(

4 个答案:

答案 0 :(得分:2)

听起来price被存储为字符串而不是数字。

您可以尝试:

order by price + 0

这会将其转换为数字。

答案 1 :(得分:2)

试试这个:

SELECT ID, ITEM_NAME, PRICE FROM REFERENCES .... 
ORDER BY cast(PRICE as unsigned) ASC

答案 2 :(得分:0)

我打赌价格列不是数字而是字母数字。在这种情况下,排序顺序是字母数字,所以你得到

  

1
  12个
  12.2
  2

因为1 < 212 < 12.2

答案 3 :(得分:0)

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

SELECT ID,ITEM_NAME,来自参考的价格....按价格购买ASC

或者只是

SELECT ID,ITEM_NAME,来自参考的价格....按价格订购

输出 -    1 2 12 12.2