验证表里某不确定的字段的值是否唯一的方法?
时间: 2019-04-26来源:博客园
前景提要
验证表里某不确定的字段的值是否唯一的方法?
0 悬赏园豆: 50 [待解决问题] 验证表里某不确定的字段的值是否唯一的方法? 相忘江湖何处去 | 初学一级 | 园豆: 140
提问于:2019-04-26 10:35 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(3) 0 如果可以改数据表,你加上一个 唯一约束 unique;如果不能,查询的时候可以用 group by 分组 三人乐乐 | 园豆:3245 (老鸟四级) | 2019-04-26 10:58 不可以。。加唯一约束。字段很多。这个是自定义字段的话,不可以加约束 支持( 0 ) 反对( 0 ) 相忘江湖何处去 | 园豆:140 (初学一级) | 2019-04-26 13:44 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 你这个问题是否可以理解为“验证表里的某一不确定的字段的值,没有重复”?
如果是的话,那么你就可以先查出表的总记录数,然后在查出该字段去重之后的总记录数,
对比两次结果,如果数量相同则没有重复;如果数量不相等,则代表有重复的内容。
下面是一个示例: mysql> select * from user; +----+------+-----------+ | id | name | address | +----+------+-----------+ | 1 | aaa | beijing | | 2 | bbb | shanghai | | 3 | ccc | hangzhou | | 5 | aaa | chongqing | +----+------+-----------+ 4 rows in set (0.00 sec) mysql> select (select count(*) from user) = (select count(*) from (select distinct name from user) t); +-----------------------------------------------------------------------------------------+ | (select count(*) from user) = (select count(*) from (select distinct name from user) t) | +-----------------------------------------------------------------------------------------+ | 0 | +-----------------------------------------------------------------------------------------+ 1 row in set (0.01 sec) mysql> delete from user where id=5; Query OK, 1 row affected (0.05 sec) mysql> select * from user; +----+------+----------+ | id | name | address | +----+------+----------+ | 1 | aaa | beijing | | 2 | bbb | shanghai | | 3 | ccc | hangzhou | +----+------+----------+ 3 rows in set (0.00 sec) mysql> select (select count(*) from user) = (select count(*) from (select distinct name from user) t); +-----------------------------------------------------------------------------------------+ | (select count(*) from user) = (select count(*) from (select distinct name from user) t) | +-----------------------------------------------------------------------------------------+ | 1 | +-----------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) 寻觅beyond | 园豆:584 (小虾三级) | 2019-04-26 11:03 要考虑数据很多的情况,这个直接查表不可以。。 支持( 0 ) 反对( 0 ) 相忘江湖何处去 | 园豆:140 (初学一级) | 2019-04-26 13:45 编辑文本 预览 上传图片
Ctrl+Enter键快速提交 0 执行以下sql查出来的字段的值都是唯一的
select t.YOUR_COLUMN
from YOUR_TABLE t
group by t.YOUR_COLUMN
having count(t.YOUR_COLUMN) = 1 信息技术爱好者 | 园豆:210 (菜鸟二级) | 2019-04-29 15:14 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行