ホームページ >バックエンド開発 >PHPチュートリアル >同じ名前のデータを検索する方法

同じ名前のデータを検索する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 12:05:451206ブラウズ

同じ名前のデータを見つけるには?
テーブル A
id 名 kemu
1 張龍作文
2 張龍数学
3 李四作文
5 王武作文
6 趙胡の数学
7 趙胡 雄弁でも....>
259d170191bd32b80a75a1db1354d814 Duoke
f2e2131d3e87e0024feed2d5da203680
82c0184ed11658e62275fd251b65909d
上の検索をクリックすると次のように表示されます:
1 Zhang Long
2 Zhao Hu

------解決策---------- ----------------------


名前 張龍 趙胡

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)

------解決策------------- ------


1. まず、同じ名前のレコードを削除します。同じ主題 12. 複数の名前を持つレコードを検索します
<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 />

lz、テーブルはもともと学生のコース選択ステータスを保存することを目的としており、「組み込み値」を使用するように設計されています。いいですね。なぜその後、これほど多くの主題に拡張されるのでしょうか?複雑で非効率な SQL の多くは、不合理なテーブル設計から始まります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。