php - MySQL SELECT 查询对多个唯一字段值进行 LIMIT

标签 php 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
                                    ...

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

"SELECT `text` FROM `sections` WHERE MATCH(`text`) AGAINST ('$str' IN BOOLEAN MODE) LIMIT UNIQUE(`article_id`, $count)"

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

最佳答案

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

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 中。

关于php - MySQL SELECT 查询对多个唯一字段值进行 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35889756/

相关文章:

mysql - 授予来自任何主机(远程或本地)的访问权限

php - Laravel 4 : Any way to run PHP Artisan command in PHP code?

php - 在其他 Blade 中包含导航栏 Blade 会使 "CSS"与 "Laravel"发生冲突!

php - Safari - NSPOSIXErrorDomain :100

mysql - 在构建路径中找不到带有 mysql 连接器的 com.mysql.jdbc.Driver

mysql - 从命令行在 CentOS 上正常重启(担心数据库损坏)

php - 如何在数据库中插入一个或多个以逗号分隔的链接?

php - 为什么 @ 运算符不抑制 CodeIgniter 中的 E_NOTICE?

php - Magento隐藏自定义产品属性

javascript - 通过 javascript 提交表单