【发布时间】:2019-01-28 16:58:10
【问题描述】:
以下是我从具有组 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 条记录。那么有没有办法根据给定的日期范围获取所有记录?任何帮助将不胜感激。
【问题讨论】:
-
在我看来,GROUP_CONCAT 几乎没有任何用处,所以我的回答是:不要理会 GROUP_CONCAT!
-
顺便提一下,
arul_timestamp BETWEEN '2018-08-21 00:00:00' AND '2018-08-22 23:59:59'会快几个数量级 -
如果您无法更改系统设置,那么您不能使用 group_concat ,结果将 > 大于默认最大值。您可能需要以不同的方式展示结果集,或者让任何您的展示工具来完成这项工作。
-
@strawberry 更好的是
arul_timestamp >= '2018-02-21' AND arul_timestamp < '2018-08-23' -
@P.Salmon,感谢您的建议。我已经使用 PHP 修复了这个问题
标签: mysql sql concat group-concat