下面是我的查询,用于从具有concat组的表中获取记录。
SELECT GROUP_CONCAT(CONCAT('''', order_number, '''' )) as order_number FROM edi_order_response where order_status = 'DELIVERED_INTIME' AND DATE(`arul_timestamp`) BETWEEN '2018-08-21' AND '2018-08-22'
从上面的查询中,我得到了93条记录,其中一条记录的记录是无终止的,如下所示
'78E4PLMF','7TQ223UD','8FKC5B2F',......,'89KB6MRR','
但是当我在相关表格中看到上述日期范围时,将近330条记录。那么有什么方法可以根据给定的日期范围获取所有记录?任何帮助将不胜感激。
答案 0 :(得分:1)
是的。它由设置group_concat_max_len
控制,默认值为1024。
您可以在documentation中了解它。
您还可以将值设置为更高的值:
SET [GLOBAL | SESSION] group_concat_max_len = <some larger value>
答案 1 :(得分:1)
默认情况下,它受group_contact_max_len
控制,最大长度为1024 characters
好吧,您可以更改此设置以获取更多数据,例如:
SET @@group_concat_max_len = value_numeric;
value_numeric必须为> 1024
;默认情况下,group_concat_max_len
的值为1024
。
更改mysql .ini文件,然后重新启动服务器。
如果您不需要访问服务器,则可以通过设置临时会话范围(如
)来实现SET SESSION group_concat_max_len = 1000000;
select group_concat(column) from table group by column
但这只能在此会话中使用。对于不同的会话,您必须重新设置。