1.构建表和数据
CREATE TABLE `teacher` (
`ID` bigint(20) NOT NULL COMMENT 'ID',
`REGNAME` char(200) DEFAULT NULL COMMENT '师教编号',
`NAME` char(20) NOT NULL COMMENT '教师名称',
`TYPE` int(1) DEFAULT '0' COMMENT '师教类型(0:内聘,1:外聘)',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `teacher` VALUES ('10001', 'allen', 'allen', '0');
INSERT INTO `teacher` VALUES ('10002', 'ruby', 'ruby', '0');
INSERT INTO `teacher` VALUES ('10003', 'sharon', 'sharon', '1');
INSERT INTO `teacher` VALUES ('10004', 'alpha', 'alpha', '0');
INSERT INTO `teacher` VALUES ('10005', 'alpha', 'alpha', '0');
INSERT INTO `teacher` VALUES ('10006', 'alpha', 'alpha', '0');
2.数据库记录
mysql> select * from teacher;
+-------+---------+--------+------+
| ID | REGNAME | NAME | TYPE |
+-------+---------+--------+------+
| 10001 | allen | allen | 0 |
| 10002 | ruby | ruby | 0 |
| 10003 | sharon | sharon | 1 |
| 10004 | alpha | alpha | 0 |
| 10005 | alpha | alpha | 0 |
| 10006 | alpha | alpha | 0 |
+-------+---------+--------+------+
6 rows in set
3.需要获取的记录
+-------+---------+--------+------+
| ID | REGNAME | NAME | TYPE |
+-------+---------+--------+------+
| 10001 | allen | allen | 0 |
| 10002 | ruby | ruby | 0 |
| 10003 | sharon | sharon | 1 |
| 10004 | alpha | alpha | 0 |
| 10005 | alpha | alpha | 0 |
+-------+---------+--------+------+
查询语句:mysql> select * from teacher t
where 2>(select count(*) from teacher where REGNAME=t.REGNAME and ID<t.ID);
+-------+---------+--------+------+
| ID | REGNAME | NAME | TYPE |
+-------+---------+--------+------+
| 10001 | allen | allen | 0 |
| 10002 | ruby | ruby | 0 |
| 10003 | sharon | sharon | 1 |
| 10004 | alpha | alpha | 0 |
| 10005 | alpha | alpha | 0 |
+-------+---------+--------+------+
5 rows in set
-----------------------------------------------------
解释: 说白了 就是
每条语句都有一个count(*),10001,10002,10003,10004的count(*)都是0,
10005的count(*)是1,10006的count(*)就是2,取大于2的数据,就排除了id是1006的记录。
当检索到id是10006的时候,REGNAME=t.REGNAME 的记录有3条,
而符合这个条件的是ID<t.ID,分别是 10004<10006,10005<10006,
10006不小于1006,
所以当id是1006的时候,count(*)是2。
而表中REGNAME唯一的记录的count(*)是0,因为,举个例子来说,当检索id是10001的记录时, 不存在1001<1001的结果,所以count(*)是0
--------------------
还可以访问 获得更多信息
http://blog.csdn.net/acmain_chm/article/details/4126306
分享到:
相关推荐
SQL语句去掉重复记录,获取重复记录 –查询一个表中有效去掉重复的记录,UserID为自增长主键,RoleID为重复字段 SELECT MIN(UserID) AS UserID, RoleID FROM tmpTable GROUP BY RoleID SELECT RoleID ...
例如:删除表 MyClass中编号为 的记录 mysql> delete from MyClass where id=1; 7、修改表中数据:update 表名 set 字段=新值,…where 条件 mysql> update MyClass set name=’Mary’where id=1; 7、在表中...
例如:删除表 MyClass中编号为1 的记录 mysql> delete from MyClass where id=1; 7、修改表中数据:update 表名 set 字段=新值,… where 条件 mysql> update MyClass set name='Mary' where id=1; 7、在表中增加字段...
当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据, 然后才可以删除主表的数据。还有一种就是级联删除子表数据。 注意:外键约束的参照列,在主表中引用的只能...
通过获取关键字建议并从编码中去除重复内容,使用“代码完成”和可自定义的代码段快速进行编码。 使用我们专业的对象设计器创建,修改和管理所有数据库对象。使用复杂的数据库设计和建模工具将数据库转换为图形表示...
还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 代码....[dbo].[testim] –删除表 –把不重复记录转存到testim中 select * into [ItemMaster].[dbo].[testim] from [ItemMaster].[dbo].[dat_item_maste
10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 ...
查询数据是指从数据库中的数据表或视图中获取所需要的数据,在mysql中,可以使用SELECT语句来查询数据。根据查询条件的不同,数据库系统会找到不同的数据。 SELECT语句的基本语法格式如下: [sql] view plain copy ...
10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 10.8 ...
10.3.2 从多个表中获取数据 10.3.3 以特定的顺序获取数据 10.3.4 分组与合计数据 10.3.5 选择要返回的行 10.3.6 使用子查询 10.4 更新数据库记录 10.5 创建后修改表 10.6 删除数据库中的记录 10.7 表的删除 ...
使用方法:获取id的重复字段的值,利用相同id字段所在的行中,比较出数据不同的字段,删除 除了最小(或最大)的字段所在的该行之外的所有重复的行。一般使用主键来比较,因为主键的值一定是唯一值,绝对不相同。 ...
实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 ...
实例129 去除数组中的重复元素 158 实例130 字符串与数组的转换 159 实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 ...
通过获取关键字建议并从编码中去除重复内容,使用“代码完成”和可自定义的代码段快速进行编码。使用我们的调试组件,例如设置断点,单步执行程序,查看和修改变量值以及检查调用堆栈,可以快速找到并纠正PL / SQL和...
实例215 显示数据表中的重复记录和记录条数 335 8.8 排序、分组统计 336 实例216 对数据进行降序查询 336 实例217 对数据进行多条件排序 337 实例218 对统计结果进行排序 338 实例219 单列数据分组统计 ...
05 ORM多表操作之多对多添加记录 06 ORM多表操作之多对多查询 07 ORM多表操作之F查询与Q查询 08 ORM的querySet集合对象的特性 第53章 01 admin介绍 02 alex首秀失败 03 自定义admin样式 04 admin补充 05 COOKIE...
实例075 获取字符串中汉字的个数 94 实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用...