我在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”部分是从最高到最低的,它返回的是混合的所有东西,我已经看到了几个问题但我不能解决它。
您当前的结果使得COTIZACION
看起来像是作为字符串存储的,而不是作为数字存储的。 按字符串方式,“3”
大于“22”
(因为“3”
大于“22”
的第一个字符,即“2”
)。 您应该修复您的数据模型,并将数字存储为数字。
同时,您可以强制进行数值转换,如下所示:
ORDER BY 0 + o.cotizacion DESC, o.fecha DESC