在mysql查询中至少获取10个值
我在mysql中有一个表。表名是一个表,它包含40多列,它的类型是varchar,它包含25000多条记录。我这样写查询是为了得到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
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。以整数/十进制格式存储的值。