我在mysql中有一张表。表名是constitutive_table,它包含40多个列,类型是varchar,它包含25000多个记录。我这样写查询以获得10的最小值。但是它的显示方式就像您在图片中看到的那样。
SELECT `Sequence_Name`
, `Name_of_the_Protein`
, `Brain`
FROM `constitutive_table`
where `Brain` != 0
ORDER
BY cast(Brain AS int)
LIMIT 0,10
最佳答案
Brain
列中的数据似乎是浮点数,因此您应该强制转换为适当的类型:
SELECT Sequence_Name, Name_of_the_Protein, Brain
FROM constitutive_table
WHERE CAST(Brain AS DECIMAL(14, 8)) <> 0
ORDER BY CAST(Brain AS DECIMAL(14, 8))
LIMIT 10
现在最有可能发生的情况是,您看到的10个值在转换为整数时都具有相同的值。结果,MySQL正在使用一些辅助排序来生成您看到的顺序。
尽管上述查询可以解决您的问题,但理想情况下,您应该将
Brain
列更改为某些数字类型。关于mysql - 在mysql查询中获取至少10个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59211827/