SQL 字段重复值

[list]
[*]很久没有学习的劲头了,今天参加一公司的面试,结果问到了这么一个SQL题,也就是给定一个表,需要查找出里面有重复记录的数据记录项。开题之前先谈谈这公司的面试过程,约的是10点到,结果10:20到的,一看大楼觉得还可以,在保安处登记以后走到会客厅等待接待人员来带到面试的地方,开始还是老样子首先是答题,说一个小时,结果应该不到半个小时题就答好了。然后在填填登记表,之后一起把这些东西交给面试的技术(答题之前我问了一句给我试题那哥们说做好以后给谁,哥们用手指头指了指)。接下来就是技术面试了,开始介绍一下自己的工作和参加过的项目,因为之前的项目多是用的SSI的架构(struts1),问了个大概,然后说缓存方面呢,我说memcache,然后叫我谈谈了它的工作机制以及内存分配模型(内存分配模型方面答得不是很好)技术面试的过程中struts1的实现机制和spring aop ioc问得比较多。技术大概面了有40分钟,哥们一看12多了,就叫我下午两点在去,结果我就直接去吃了顿饭,大概2点的时候又来到这公司,直接联系了那哥们(走之前跟我留了个电话说来之后直接打他电话),之后哥们带我到了人事部,然后也是一很2的哥们,问了一些问题说自我介绍3分钟,结果一分钟不到,哥们说三分钟一分钟不到呀,你叫怎么了解你(简历没带上),我想不就面试吗,人事不就谈个工资问问一些以前工作情况吗?然后后来又问了一些问题,说我感觉不配合他的样子,我说没有呀,说实话这些天人的状态确实感觉有点疲惫的样子,其实在这个环节我已经决定放弃这份工作了,最后谈到薪资方面,我说已经写在登记表上了,他估计看了一下说如果假如这边提供一个好的发展环境愿意降低你的薪资吗,我说这个也是根据自己的能力和这边的消费水平来定的不能少。结果哥们来了一句既然到这了就没有必要谈了,我心里在想你TMD SB是招人还是干什么呀?没看到简历上写的薪资呀,谁叫你们打电话叫我面试呀。说了一堆废话,还是说下这个SQL题:


mysql> create database on_demand
-> ;
Query OK, 1 row affected (0.01 sec)

mysql> use on_demand;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create table get_repeat(id int not null auto_increment,name varchar(10),p
rimary key(id));
Query OK, 0 rows affected (0.09 sec)
mysql> show tables;
+---------------------+
| Tables_in_on_demand |
+---------------------+
| get_repeat |
+---------------------+
1 row in set (0.02 sec)
mysql> insert into get_repeat (name) values ("Li");
Query OK, 1 row affected (0.06 sec)

mysql> insert into get_repeat (name) values ("Li");
Query OK, 1 row affected (0.05 sec)

mysql> insert into get_repeat (name) values ("zhang");
Query OK, 1 row affected (0.01 sec)

mysql>
mysql> insert into get_repeat (name) values ("zhang");
Query OK, 1 row affected (0.03 sec)

mysql> insert into get_repeat (name) values ("wei");
Query OK, 1 row affected (0.03 sec)

mysql> insert into get_repeat (name) values ("liu");
Query OK, 1 row affected (0.03 sec)

mysql> select * from get_repeat;
+----+-------+
| id | name |
+----+-------+
| 1 | Li |
| 2 | Li |
| 3 | zhang |
| 4 | zhang |
| 5 | wei |
| 6 | liu |
+----+-------+
6 rows in set (0.00 sec)


以下是获取重复记录的SQL(方法应该比较多,就写了一种传统写法):
mysql> select * from get_repeat where name in (select name from get_repeat group
by name having count(name)>=2);
+----+-------+
| id | name |
+----+-------+
| 1 | Li |
| 2 | Li |
| 3 | zhang |
| 4 | zhang |
+----+-------+
4 rows in set (0.00 sec)


[/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值