我的表格中包含diplayPrice
字段varchar
。该字段填充了10.90 EUR
,3.90 EUR
,119.00 EUR
等等。
我该如何排序?
我尝试了几件事,例如:
Select * From produkte ORDER BY length('DisplayPrice')
Select * From produkte ORDER BY CAST(`DisplayPrice` AS SIGNED)
提前致谢。
答案 0 :(得分:0)
尝试此查询 -
SELECT * FROM produkte ORDER BY DisplayPrice * 1
将DisplayPrice转换为数字值会有所帮助。
答案 1 :(得分:0)
您可以使用 substring 来获取仅包含数字和排序的部分。 这是未经测试的。
select *,substring_index(displayPrice,' ',1) as displayPriceVal ...... order by displayPriceVal
答案 2 :(得分:0)
或者只是将其转换为十进制,以便您轻松订购。
SELECT *
FROM produkte
ORDER by Cast(LEFT(DisplayPrice,LENGTH(DisplayPrice)-4) as dec(10,2))
但你需要在这里削减货币。我建议你在另一栏中找到这个更灵活的方法(即排序;))