首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从mysql数据库中选择最长的文本?

如何从mysql数据库中选择最长的文本?
EN

Stack Overflow用户
提问于 2017-01-21 14:48:12
回答 2查看 64关注 0票数 0

我为新闻文章做聚类。我将大量数据分类到多个集群中。我想要做的是从每个具有最长文本内容的集群中提取一个数据。

我有两个表,我想连接这两个表,并只显示文本最长记录。

我的表:

表新闻内容

代码语言:javascript
复制
news_id   title   content      category
   1      abcd    abcd            a
   2      abcd    abcdefg         a
   3      abcd    abcdefghij      a
   4      efgh    efgh            a
   5      efgh    efghijk         a
   6      efgh    efghijklmn      a
   7      ijkl    ijkl            b
   8      ijkl    ijklmn          b

表新闻集群

代码语言:javascript
复制
newscluster_id   news_id  category  cluster
      1             1        a        0
      2             2        a        0
      3             3        a        0
      4             4        a        1 
      5             5        a        1
      6             6        a        1

所需输出:

代码语言:javascript
复制
news_id    title    content    category   cluster
   3       abcd    abcdefghij     a         0
   6       efgh    efghijklmn     a         1 

我该怎么做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-21 14:55:56

您可以通过使用一系列连接来完成您想要的操作。但是,我有一种感觉,您的模式并没有完全规范化。

代码语言:javascript
复制
SELECT t2.news_id,
       t2.title,
       t2.content,
       t2.category,
       t1.cluster
FROM newscluster t1
INNER JOIN newscontent t2
    ON t1.news_id = t2.news_id
INNER JOIN
(
    SELECT t1.cluster, MAX(CHAR_LENGTH(t2.content)) AS max_content_length
    FROM newscluster t1
    INNER JOIN newscontent t2
        ON t1.news_id = t2.news_id
    GROUP BY t1.cluster
) t3
    ON t1.cluster = t3.cluster AND
       CHAR_LENGTH(t2.content) = t3.max_content_length
-- WHERE t2.category = 'a'
票数 0
EN

Stack Overflow用户

发布于 2017-01-21 15:08:08

试试这个:

代码语言:javascript
复制
select * from (
    select a.*, cluster from newscontent a
    join newscluster b on a.news_id =b.news_id
    order by length(content) desc) x
group by cluster

有些人会抱怨,但如果它起作用了,它就起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41776525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档