Java 计算mysql中不等于某个值的条目

Java 计算mysql中不等于某个值的条目,java,mysql,jdbc,Java,Mysql,Jdbc,我编写这段代码是为了统计数据库中的条目,其中列的默认值由我指定。在前端,用户可以将该列的值更改为随机字母数字。现在我必须计算用户更改了多少条目。在将mysql链接到jdbc时,我尝试了以下代码: select * from complaints where RID=11120059 where permanent_token !='0'; select * from complaints where RID=11120059 where not permanent_token ='0'; 但都

我编写这段代码是为了统计数据库中的条目,其中列的默认值由我指定。在前端,用户可以将该列的值更改为随机字母数字。现在我必须计算用户更改了多少条目。在将mysql链接到jdbc时,我尝试了以下代码:

select * from complaints where RID=11120059 where permanent_token !='0';
select * from complaints where RID=11120059 where not permanent_token ='0';

但都没有起作用。我将varchar的默认值指定给永久\u令牌为“0”。

您的请求中有两个错误

首先,使用两次关键字where 第二,当您想要在sql中使用不相等的内容时,必须使用 例如,您的第一个请求: 从投诉中选择*,其中RID=11120059和永久_标记“0”

要获得您的计数结果: 从投诉中选择count*,其中RID=11120059和永久_标记“0”

尝试更改:

select * from complaints where RID=11120059 where permanent_token !='0';
为此:

select count(*) from complaints where RID=11120059 and permanent_token <> '0';
问题:

您在查询中使用了2个where子句。即使删除了额外的where子句,也必须执行两个查询来获得每个查询的计数

解决方案:

这将为您提供一个查询中的记录总数

select SUM(CASE WHEN permanent_token = '0' THEN 0 ELSE 1 END) as NotZeroCount,
       SUM(CASE WHEN permanent_token = '0' THEN 1 ELSE 0 END) as IsZeroCount
from complaints 
where RID=11120059 

首先,试着大声说出你的疑问,给我所有的投诉记录,其中RID等于11120059,永久_令牌不等于0,这可能会转化为

select * from complaints where RID=11120059 and permanent_token <> '0';
将返回与查询匹配的所有记录,如果您只想知道与查询匹配的条目数,则只需使用

select count(*) from complaints where RID=11120059 and permanent_token <> '0';  
我还建议使用prepred语句,有关更多详细信息,请参阅


而MySQL将同时允许这两种情况!=而且,被其他数据库普遍更广泛地接受

OMG!您正在使用两个where子句?您只需使用select*from CHAMPTIONS where RID=11120059 where permanent_标记“0”;,但是,如果您只想知道与查询匹配的条目数,您可以简单地使用select count*,其中RID=11120059,其中永久性_标记“0”;我还建议使用prepred语句,更多信息请参见details@MadProgrammer你的评论应该是一个答案。