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

标签 mysql sql database

Database table.

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

相关文章:

mysql - 使用带有 sum 的内连接时出现问题

mysql - 如何返回 WHERE 子句的下一行?

php - 选择多个表并按日期时间列排序显示它们

mysql - INNER JOIN 不限制结果

c# - 创建数据库和表

php - 修复旧的 MySQL 日期字段错误

sql - SQL 可以对数字的重要部分进行排序吗?

php - 如何存储敏感文件并只允许某些用户访问

MySQL 更新触发器 - 如何检测未传递的值?

mysql多表DELETE行语法错误