当前位置: 首页 > 面试题库 >

在GROUP_CONCAT的查询中忽略了LIMIT

周云
2023-03-14
问题内容

我需要从第二个表中选择一些行,并将它们连接成逗号分隔的字符串。除一个问题外,查询效果很好-它始终选择所有行,并忽略LIMIT。

这是我的查询的一部分,该查询获取该字符串并忽略LIMIT:

select 
    group_concat(value order by `order` asc SEPARATOR ', ') 
from slud_data 
    left join slud_types on slud_types.type_id=slud_data.type_id 
where slud_data.product_id=18 and value!='' and display=0 limit 3;


// Result:
+---------------------------------------------------------+
| group_concat(value order by `order` asc SEPARATOR ', ') |
+---------------------------------------------------------+
| GA-XXXX, Bentley, CONTINENTAL FLYING SPUR, 2006         |
+---------------------------------------------------------+

// Expected result: (only 3 comma-separated records, not 4)

完整查询:

SELECT *,product_id id,
    (select group_concat(value order by `order` asc SEPARATOR ', ') from slud_data left join slud_types on slud_types.type_id=slud_data.type_id where slud_data.product_id=t1.product_id and value!='' and display=0 limit 3) text
FROM slud_products t1 
WHERE 
    now() < DATE_ADD(date,INTERVAL +ttl DAY) and activated=1
ORDER BY t1.date desc

问题答案:

LIMIT子句限制最终结果集中的行数,而不是用于在GROUP_CONCAT中构造字符串的行数。由于您的查询在最终结果中仅返回一行,因此LIMIT无效。

您可以通过使用LIMIT 3构造一个子查询来解决问题,然后在外部查询中将GROUP_CONCAT应用于该子查询的结果。



 类似资料:
  • 问题内容: 什么是运行查询以便忽略字段中的空格的最佳方法?例如,以下查询: 将找到以下条目: 我正在使用php或python,但我认为这没有关系。 问题答案:

  • 问题内容: 我有一个由不同线程同时读取的表。 每个线程必须选择100行,在每行上执行一些任务(与数据库无关),然后它们必须从表中删除选定的行。 使用此查询选择行: 我的问题是:如何忽略(或跳过)以前使用MySQL中的select语句锁定的行? 问题答案: 我通常创建一个默认为NULL的process_id列,然后让每个线程使用唯一的标识符来执行以下操作: 这样可以确保每个线程从表中选择唯一的行集。

  • 和使用它的字段: 当使用Solr分析工具时,一切看起来都很好。 查询部分如下: null null

  • 问题内容: 我正在寻找一种创建忽略空格的学说查询的方法。我尝试用replace,但是我一直都收到 预期的已知功能,得到“替换” 我的查询看起来像: 问题答案: 好的,我编写了一个替换DQL函数。 接下来在app / config.yml中,我添加: 最后,我在控制器中创建了一个DQL查询: 最有趣的是,“引号”非常重要。这意味着您可以在select,from,setParameter和orderB

  • Spring Hateoas没有为以下请求映射创建适当的链接: 致电/会员/12345时,您希望返回: 但相反,它返回: 这是为什么?即使我使用@Request estParam,它也完全忽略了过滤器。在这件事上,任何建议都将受到赞赏。

  • 问题内容: 我正在建立一个利用全文搜索的网站搜索。搜索本身效果很好,这不是我的问题。我将用户提供的关键字(MATCH … AGAINST …)与AND串在一起,以便多个单词进一步缩小结果范围。现在,我知道某些索引词没有被索引,这对我来说很好,我真的不想使用它们作为选择标准。但是,如果(由用户)在关键字集中提供了停用词,则即使该词实际上位于某个文本块中,它也会杀死所有结果(如预期的那样)。 我的问题