RT,今天在做数据分组的时候发现一个重大问题,不知道各位同仁有没有碰到过。表结构:
id sid pid ip
自动编号 表2编号 物品编号 IP地址
sid和pid是可以重复
现在我要检索表里所有数据并按IP地址分组,假如其表中共有5条pid为222的记录并且IP地址都不重复,按如下SQL分组检索应该是pid为222的5条记录全部都出来,可是在全表检索时加group by ip则只会出2条记录,其余3条记录消失了,如果在条件里加上pid='222'即缩小检索范围时5条记录就全不出来,不知道是哪里原因。//此条只出两条为222的记录
select id,sid,pid,ip from record where sid=123456 group by ip//此条则5条全部出来
select id,sid,pid,ip from record where sid=123456 and pid='222' group by ip//此条也5条全部出来
select id,sid,pid,ip from record where sid=123456
id sid pid ip
自动编号 表2编号 物品编号 IP地址
sid和pid是可以重复
现在我要检索表里所有数据并按IP地址分组,假如其表中共有5条pid为222的记录并且IP地址都不重复,按如下SQL分组检索应该是pid为222的5条记录全部都出来,可是在全表检索时加group by ip则只会出2条记录,其余3条记录消失了,如果在条件里加上pid='222'即缩小检索范围时5条记录就全不出来,不知道是哪里原因。//此条只出两条为222的记录
select id,sid,pid,ip from record where sid=123456 group by ip//此条则5条全部出来
select id,sid,pid,ip from record where sid=123456 and pid='222' group by ip//此条也5条全部出来
select id,sid,pid,ip from record where sid=123456
解决方案 »
- mysql数据导入出现unknown command '\',怎么解决?
- show processlist查出来的ID代表什么
- mysql中变量类型
- 关于MYSQL中直接插入数据...插不进去!
- SQuirreL SQL Client操作Mysql是的中文乱码问题
- mysql 中能读出表的一些元数据吗?
- 从mysql 4.0导出数据,无法导入mysql 5.0
- xp下MySQL 5.0如何启动?
- 安装MYSQL出现问题
- 还是有问题,谁来帮帮我啊,看看这个sql怎么写,我是mysql
- MYSQL安装问题.
- show variables like 'key_buffer_size'中得到的值 的单位是什么?
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
select id,sid,pid,ip from record where sid=123456 group by ip
意味着先查询sid=123456的记录,假设是2条,然后在分组,如果这两条切好不重复,那么结果就是两条。这和5条记录ip结果不重复一点也不冲突。
sid=123456只是范围为123456的,这5条记录的sid都是123456
而且我分组的是IPselect id,sid,pid,ip from record where sid=123456 and pid='222' group by ip
这条5条记录可以全部出来
repair table