由于我的tags表里面的tag有重复,现在需要导出来一份,去掉重复的。我试了DISTINCT 和 GROUP BY,发现如果不导出主键id的话,结果是一样的,不会出现重复。如果需要导出主键id的话,那么使用distinct就没有效果了。
CREATE VIEW `test_tags` AS
SELECT DISTINCT `tag`
FROM `tags`
WHERE `status` > '0';
如果这样,导出的结果中,我查询一个字段MOOC,发现没有重复。
如果是这样:
CREATE VIEW `test_tags` AS
SELECT DISTINCT `tag`,`id` AS `tagid`
FROM `tags`
WHERE `status` > '0';
结果中就会出现重复的内容了,distinct就没有效果
CREATE VIEW `test_tags` AS
SELECT `tag`,`id` AS `tagid`
FROM `tags`
WHERE `status` > '0'
GROUP BY `tag`;
这样就不会重复了!!!
说明我们在单独查询某个非主键字段的时候,是一样的效果,如果是连同主键一起查询,那么就还得用group by了!