首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql Count()不工作

Mysql Count()不工作
EN

Stack Overflow用户
提问于 2017-11-24 09:50:26
回答 2查看 164关注 0票数 0

students_records

代码语言:javascript
复制
+----+-----+-----+-------+
| Sr | SRN | ARN | Marks |
+----+-----+-----+-------+
| 1  | ge  | aj  |  10   |
| 2  | ge  | bd  |   4   |
+----+-----+-----+-------+  

在上面的数据库中,我希望计数的标记小于'<=' 5和ARn值不等于‘!=’N的行数,因此对于上面的示例,计数应该是**1,但是对于我的代码,它是2

代码:

代码语言:javascript
复制
SELECT COUNT(Sr) AS Sr FROM students_records WHERE ARN != 'N' AND Marks <= '5'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-24 10:03:56

理想情况下,您应该将字段类型更改为整数,因为这是要存储的内容。如果这是不可能的,您可以在查询时转换该字段,如下所示:

代码语言:javascript
复制
SELECT COUNT(Sr) AS Sr FROM t WHERE ARN != 'N' AND cast(Marks AS UNSIGNED) <= '5';

但是当你得到一个更大的数据集时,这可能会很慢。

您还可以通过删除围绕"5"的引号来隐式执行强制转换,如下所示:

代码语言:javascript
复制
SELECT COUNT(Sr) AS Sr FROM t WHERE ARN != 'N' AND Marks <= 5;
票数 0
EN

Stack Overflow用户

发布于 2017-11-24 10:01:50

这里唯一真正的解决方案是将marks的字段类型从varchar更改为像integer这样的数字数据类型。

一个丑陋的解决办法是

代码语言:javascript
复制
where cast(marks as unsigned) <= 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47470530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档