选择查询到表的最后一行,在mysql中给出错误的结果

时间:2017-03-22 09:09:15

标签: mysql

我想获取表格的最后一行。为此我已经习惯了下面的查询,但它返回99我的表中包含大约123和最后的pro_id = 123.正确的结果应该是123.

请以正确的方式建议我:

 SELECT * FROM product ORDER BY pro_id DESC LIMIT 1

3 个答案:

答案 0 :(得分:1)

我认为问题在于你的pro_id是字符,它将按字母顺序排序。您可以尝试将其转换为数字。

SELECT * FROM product ORDER BY CAST(pro_id AS UNSIGNED) DESC LIMIT 1

答案 1 :(得分:1)

这很可能是因为您的pro_id列定义为文字。 您可以通过

列中的数值告诉sql按顺序排序
SELECT * FROM product ORDER BY CONVERT(pro_id, UNSIGNED INTEGER) DESC LIMIT 1

答案 2 :(得分:0)

此查询将显示真正的desc结果:

select pro_id from
(SELECT cast(replace(pro_id,' ','') as UNSIGNED) as pro_id from product) as a
ORDER BY pro_id desc limit 1