免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1816 | 回复: 6
打印 上一主题 下一主题

怎样查出数据表中是否有相同的资料? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-15 17:03 |只看该作者 |倒序浏览
不给定条件,怎样查出数据表中是否有相同的资料存在?

同一个字段是否存在相同的内容。。

select f1,f2 from table AS T1,table AS T2 where T1.f1=T2.f1 OR T1.f2=T2.f2 order by ....

但这样做并不成功,哪位可以用另外的办法实现?(数组+双循环除外)

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-07-15 18:02 |只看该作者

怎样查出数据表中是否有相同的资料?

你的表述不是很清楚,不知道这个是不是你要的东西。
可以试试:

  1. select f12,count(f12) as cf from
  2. (select f1 + f2 as f12 from T1)
  3. group by f12
  4. having cf >; 1
复制代码


先把f1和f2加起来,然后用group分组,使用count来统计分组的数量,然后过滤出相同的内容,我们可以认为如果有相同记录的话,f12的值是一样的。

需要注意的是:
1、可能需要先用类型转换函数将f1和f2转换成为字符类型然后在相加;
2、如果使用的是mysql 4.1x之前版本的数据库,因为不支持子查询,所以需要先将f1+f2的结果集放到临时表里,再做group by处理。

呵呵,这是我的版主第一帖,大家多关照。

论坛徽章:
0
3 [报告]
发表于 2003-07-15 19:43 |只看该作者

怎样查出数据表中是否有相同的资料?

数据表table有两个字段f1和f2,现在想要的结果是把f1字段中相同内容列出来,

列如:



  1. ID      f1          f2
  2. 1       test1     test2
  3. 2       var1      var2
  4. 3       code1    code2
  5. 4       test1     c2

复制代码


那么我要的结果就是test1,或者把ID为1和ID为4的内容全部列出来

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-07-15 19:48 |只看该作者

怎样查出数据表中是否有相同的资料?

!?这么回事啊,我还想复杂了,上边那个是查找f1 f2字段同时相同的情况

select f1,count(f1) as cf from table group by f1 having cf >; 1
如果支持子查询的话,可以列出所有id 1和4的所有内容
select * from table where fi in
(select f1 from table group by f1 having count(f1) >; 1)

论坛徽章:
0
5 [报告]
发表于 2003-07-15 20:15 |只看该作者

怎样查出数据表中是否有相同的资料?

第一种方法可以达到要求,第二种方法子查询好像我的机器上不支持,找出来后不错误。3X。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-07-15 21:15 |只看该作者

怎样查出数据表中是否有相同的资料?

你如果是mysql,而且是4.1之前的版本就不支持子查询,postgresql就可以

论坛徽章:
0
7 [报告]
发表于 2003-07-16 14:25 |只看该作者

怎样查出数据表中是否有相同的资料?

我的mysql 是3.23.53的,所以不支持了,过两天升一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP