我在 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/