Heim > Backend-Entwicklung > PHP-Tutorial > 如何样查找同一姓名的数据

如何样查找同一姓名的数据

WBOY
Freigeben: 2016-06-13 12:05:45
Original
1188 Leute haben es durchsucht

怎么样查找同一姓名的数据?
表A
id     name      kemu
1        张龙    作文
2        张龙    数学
3        李四    作文
5        王五    作文
6        赵虎    数学
7        赵虎    口才
8        赵虎    珠心算

请问怎么用SQL语句查找出张三和赵虎


 多科


点击上面的搜索后显示为:
1      张龙
2      赵虎
------解决方案--------------------
drop table A;<br /><br />create table A (<br />  id int,<br />  name varchar(10),<br />  kemu1 varchar(10)<br />) charset=gbk;<br /><br />set names gbk;<br /><br />insert into A values<br />  (1, '张龙', '珠心算'),<br />  (2, '张龙', '口才'),<br />  (3, '赵虎', '珠心算'),<br />  (4, '赵虎', '作文'),<br />  (5, '王朝', '数学'),<br />  (6, '王朝', '数学'),<br />  (7, '马汉', '绘画');<br /><br />select DISTINCT A.name<br />  from A,<br />    (select name, group_concat(kemu1 order by kemu1) as klist from A group by name HAVING count(DISTINCT kemu1)>1) B<br />  where find_in_set(A.kemu1, B.klist)
Nach dem Login kopieren
name
张龙
赵虎

------解决方案--------------------
<br />SELECT name FROM t_xuanke<br />WHERE id in( SELECT id FROM t_xuanke GROUP BY name,kemu1 HAVING count(*)<=1 )<br />GROUP BY `name`<br />HAVING COUNT(*)>1<br />
Nach dem Login kopieren

1.先去掉相同名字,科目1也相同的记录
2.找出多个name的记录

lz,你这张表原本是想储存学生的选课情况,用“建对值”的设计是好的,为何后面会延伸那么多科目呢?很多复杂低效率的sql就是从不合理的表设计开始的!
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage