提问者:小点点

sql不使用MYSQL中的多变量和内部联接按顺序排序


我在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”部分是从最高到最低的,它返回的是混合的所有东西,我已经看到了几个问题但我不能解决它。


共1个答案

匿名用户

您当前的结果使得COTIZACION看起来像是作为字符串存储的,而不是作为数字存储的。 按字符串方式,“3”大于“22”(因为“3”大于“22”的第一个字符,即“2”)。 您应该修复您的数据模型,并将数字存储为数字。

同时,您可以强制进行数值转换,如下所示:

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