mysql - 在mysql查询中获取至少10个值-LMLPHP

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

10-09 20:26