Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql查询中至少获取10个值_Mysql_Sql_Database - Fatal编程技术网

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

在mysql查询中至少获取10个值,mysql,sql,database,Mysql,Sql,Database,我在mysql中有一个表。表名是一个表,它包含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

我在mysql中有一个表。表名是一个表,它包含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
选择序列名称,蛋白质名称,大脑
从本构表
WHERE CAST(大脑为十进制(14,8))0
按演员顺序排列(大脑为十进制(14,8))
限制10
现在最可能发生的情况是,您看到的10个值在转换为整数时都具有相同的值。因此,MySQL使用一些辅助排序来生成您看到的顺序


虽然上面的查询可能会解决您的问题,但理想情况下,您应该将
Brain
列更改为某种数字类型。

只需使用
orderbybrain
。为什么要转换成
int
?大脑类型是varchar。以整数/十进制格式存储的值。