使用LIMIT对许多唯一字段值进行MySQL SELECT查询

时间:2016-03-09 11:03:21

标签: php mysql

例如,我有两个表:文章和部分。

from django.utils.safestring import mark_safe
ret = 'blalblalala <br>dsdfs<br>'
return mark_safe(ret)

某些部分具有相同的article_ids。我需要一些MySQL查询,例如

id   name        id  article_id    name       text
 1  article_1     1      1       section_1  some_text
 2  article_2     2      2<-     section_2  some_text
      ...         3      2<-     section_3  some_text
                  4      3       section_4  some_text
                                    ...

或其他选择任意数量的字段,总共不超过$ count唯一的article_ids。

1 个答案:

答案 0 :(得分:0)

我不太明白你想要的是什么,但看看这是否有帮助:

drop table sections;

create table sections (
    `name` varchar(255),
    `article_id` int,
    `section_name` varchar(255),
    `text` varchar(255)
);

insert into sections values ('article_1', 1, 'section_1', 'some_text');
insert into sections values ('article_2', 2, 'section_2', 'some_text');
insert into sections values ('article_2', 2, 'section_3', 'some_text');
insert into sections values ('article_3', 3, 'section_3', 'some_text');
insert into sections values ('article_4', 4, 'section_4', 'some_text');

SELECT `section_name` FROM `sections` group by `section_name` having count(distinct `article_id`) = 1;

查询返回不超过1篇文章中出现的所有部分。这是输出:

section_1
section_2
section_4

正如您所看到的那样,section_3被排除在结果之外,因为它出现在第2条和第3条中。