在mysql中,sql不使用多变量和内部连接的order by

k10s72fa  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(231)

我在sql中有以下语句,用于显示mysql数据库中的数据。

SELECT o.*
     , u.picture
     , u.socialid 
  FROM operaciones o
  JOIN users u
    ON o.id_usuario = u.socialid
   AND o.provincia = 'Cordoba' 
   AND o.divisa = 'Dolares' 
   AND o.fecha_op IN('27-06-20','26-06-20','25-06-20') 
 WHERE o.tipo = 'compra' 
 ORDER 
    BY o.cotizacion DESC
     , o.fecha DESC

问题是它返回的是杂乱的数据,例如“cotizacion”部分是从高到低的,它返回的所有内容都是混合的,我已经看到了几个问题,但我无法解决它。

db2dz4w8

db2dz4w81#

你现在的结果看起来像 cotizacion 存储为字符串,而不是数字。字符串方面, '3' 大于 '22' (因为 '3' 大于的第一个字符 '22' ,即 '2' ). 您应该修复数据模型,并将数字存储为数字。
同时,您可以强制数字转换,如下所示:

ORDER BY 0 + o.cotizacion DESC, o.fecha DESC

相关问题