社区
MySQL
帖子详情
select中的if()函数里如何实现赋值?非常感谢!
apple749769
2011-05-23 10:22:01
set @num = 0;
select sum(if(@num<>id,1&&@num=id,0)) from tb_name; //注:id是字段名,tb_name是表名,@num是变量
我想实现的是:当@num<>id时,if函数返回1同时保存id,否则返回0,最后统计1的个数(也就是不同id的个数)。
问题:在if函数里,如何实现1的返回和@num=id的赋值?
非常感谢大家!
...全文
359
8
打赏
收藏
select中的if()函数里如何实现赋值?非常感谢!
set @num = 0; select sum(if(@numid,1&&@num=id,0)) from tb_name; //注:id是字段名,tb_name是表名,@num是变量 我想实现的是:当@numid时,if函数返回1同时保存id,否则返回0,最后统计1的个数(也就是不同id的个数)。 问题:在if函数里,如何实现1的返回和@num=id的赋值? 非常感谢大家!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
apple749769
2011-05-23
打赏
举报
回复
感谢WWWWA,rucypli的回答,
根据wwwwa的建议我已经采取view的方法来解决。
谢谢两位耐心的回复,谢谢!
rucypli
2011-05-23
打赏
举报
回复
sum是一个分组集操作
而@num=id是一项操作,不能同时进行
WWWWA
2011-05-23
打赏
举报
回复
SET @num:=0;
SET @num1='';
select sum(ss) from (
SELECT *,@num:=IF(@num1<>id,1,0) AS ss,@num1:=id AS ss1 FROM tb_name ORDER BY id) a;
or
将你的查询存为 VIEW,再分组统计
WWWWA
2011-05-23
打赏
举报
回复
[Quote=引用 3 楼 apple749769 的回复:]
呵呵,感谢WWWWA的回复,这里不能用group by,因为我这只是一个非常大的连接里的一个子查询,在外层已经有很多个group by,若再增加一个对id的group by的话,则对其他sum的数据将产生错误。
所以就产生了这样的问题:若不是用group by进行排重,用count(distinct fields) 这样又需要条件的限制,我这里只好使用变量来保存上一条记录的id,若不相等则s……
[/Quote]
SET @num:=0;
SET @num1='';
select sum(ss) from (
SELECT *,@num:=IF(@num1<>id,1,0) AS ss,@num1:=bh AS ss1 FROM tb_name ORDER BY id) a;
or
将你的查询存为 VIEW,再分组统计
WWWWA
2011-05-23
打赏
举报
回复
SET @num:=0;
SET @num1='';
select sum(ss) from (
SELECT *,@num:=IF(@num1<>id,1,0) AS ss,@num1:=bh AS ss1 FROM tb_name ORDER BY id) a;
or
SELECT COUNT(*) FROM (
SELECT id FROM jzg1 GROUP BY id) a
apple749769
2011-05-23
打赏
举报
回复
呵呵,感谢WWWWA的回复,这里不能用group by,因为我这只是一个非常大的连接里的一个子查询,在外层已经有很多个group by,若再增加一个对id的group by的话,则对其他sum的数据将产生错误。
所以就产生了这样的问题:若不是用group by进行排重,用count(distinct fields) 这样又需要条件的限制,我这里只好使用变量来保存上一条记录的id,若不相等则sum 1,否则sum 0,但问题是如何将当前id保存进这个变量呢?我无法解决了。。。。
多谢wwwwa的回复,再帮兄弟想想~
WWWWA
2011-05-23
打赏
举报
回复
SET @num:=0;
SET @num1='';
select sum(ss) from (
SELECT *,@num:=IF(@num1<>bh,1,0) AS ss,@num1:=bh AS ss1 FROM tb_name ORDER BY id) a;
WWWWA
2011-05-23
打赏
举报
回复
最后统计1的个数(也就是不同id的个数)。
select id,count(*) from tt group by id
就行了
select
函数
详解及使用案例
1、
select
函数
原型 int
select
(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 参数解释: maxfdp——传入参数,集合
中
所有文件描述符的范围,即最大文件描述符值+1 readfds——传入传出参数,
select
调用时传入要监听的可读文件描述符集合,
select
返回时传出发生可读事件的文件描述符集合 writefds——传入传出参数,
select
调用时传入要
java
select
函数
_
select
函数
参数及其使用
Select
在Socket编程
中
还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。
Select
的
函数
格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是
select
函数
的第一个参数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd_set在两个系统
里
定义不一样): int
select
(int...
select
2 用ajax动态
赋值
后再次静态
赋值
select
2 用ajax动态
赋值
后再次静态
赋值
作为一个前端新手,记录一次愚蠢的bug,耗费了一天半的时间,最后发现真的是十分愚蠢,记录下来警醒自己。 过程是这样的,首先由于option量比较大,一次性加载会造成卡顿,我需要使
select
搜索框能够随着滚动分页加载,该功能顺利通过
select
2的ajax功能
实现
了,如下所示: $('#
select
').
select
2({ placeholder: "搜索站名", minimumInputLength: 0,
关于数据结构c语言版 哈夫曼树的创建于
select
()
函数
的
实现
数据结构c语言版哈夫曼树与
select
()
函数
Layui
select
赋值
并手动自动触发
select
事件
后台管理使用的layui。一次
select
手动
赋值
操作发现没有该
select
的选
中
事件,琢磨了下做如下操作即可。 写了个common.js常用操作的工具类,修改了
赋值
方法。 layui.define(['layer','form','laydate','dtree','carousel'],function (e) { let layer=layui.layer,form=layui.form,laydate=layui.laydate,dtree=layui.dtree,carousel=layu
MySQL
56,687
社区成员
56,710
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章