需要从特定选定记录中过滤重复记录
SQL表 site_metatag ,我正在使用 MySQL客户端版本:5.5.30
metatag_id | store_id | name
1 0 copyright
2 0 author
3 0 robots
4 0 googlebot
5 0 revisit-after
6 0 google-site-verification
9 1 google-site-verification
8 1 revisit-after
10 1 googlebot
11 1 robots
12 2 googlebot
13 2 robots
14 2 google-site-verification
需要来自store_id
和1
中的0
的记录,但name
将不会像
distinct()函数给uniqe所有记录,但我需要记录,不使用超过1次
metatag_id | store_id | name
1 0 copyright
2 0 author
3 0 robots
我试试
SELECT * FROM site_metatag v
where metatag_id NOT IN
(
select metatag_id from site_metatag p where v.name=p.name
)
AND v.store_id in (0,1)
但没有工作..
答案 0 :(得分:2)
我想你想要这个:
SELECT metatag_id, store_id, `name` FROM site_metatag v group by `name`
或者,如果你想按出现次数分组(在这种情况下为1 - > cnt = 1)。
SELECT metatag_id, store_id, v.`name`, a.cnt FROM site_metatag v inner join (select `name`, count(*) as cnt from site_metatag group by `name` having cnt = 1) as a ON (v.`name` = a.`name`) group by v.`name`
答案 1 :(得分:0)
使用distinct()函数。见Distinct MYSQL
答案 2 :(得分:0)
怎么样:
SELECT * FROM site_metatag WHERE v.store_id in (0,1) GROUP BY name