Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.4 如何确定MySQL查询的组concat使用的长度_Laravel 5.4_Mysql_Laravel 5_Mysql 5.7 - Fatal编程技术网

Laravel 5.4 如何确定MySQL查询的组concat使用的长度

Laravel 5.4 如何确定MySQL查询的组concat使用的长度,laravel-5.4,mysql,laravel-5,mysql-5.7,Laravel 5.4,Mysql,Laravel 5,Mysql 5.7,我使用的是MySQL,我担心会超过group\u concat\u max\u len值,默认值是1024,所以我需要一种方法让我知道从该属性的允许长度中使用了多少特定的SELECT查询 例如,假设以下查询: 'SELECT duration, defect_id, defects.title, caves FROM (' . 'SELECT SUM(' . 'TIMESTAMPDIFF(MINUTE,GREATEST(:

我使用的是MySQL,我担心会超过
group\u concat\u max\u len
值,默认值是1024,所以我需要一种方法让我知道从该属性的允许长度中使用了多少特定的
SELECT
查询

例如,假设以下查询:

'SELECT duration, defect_id, defects.title, caves FROM ('
                . 'SELECT SUM('
                     . 'TIMESTAMPDIFF(MINUTE,GREATEST(:startDate, ca.created_at),LEAST(:endDate,IFNULL(ca.closed,NOW())))'
                    . ') AS duration, ca.defect_id, GROUP_CONCAT(cavity_id) as caves FROM cavity_actions as ca WHERE'
                    . ' ca.job_id = :job_id AND ca.defect_id IS NOT NULL GROUP BY ca.defect_id'
                . ') AS durations'               
                . ' LEFT JOIN defects ON durations.defect_id = defects.id '

                . 'ORDER BY duration DESC';
我的应用程序是使用创建的,我使用的是
DB::select()
,因此如果有一种方法可以使用Laravel动态设置
group\u concat\u max\u len
,它也会更好。但是,我可以完全访问数据库服务器,并且可以永久设置
group\u concat\u max\u len

我从跑步开始

SELECT COUNT(*) FROM cavity_actions WHERE ca.job_id = job_id AND ca.defect_id IS NOT NULL GROUP BY ca.defect_id

看看从中得到了多少结果。如果这超过了group\u concat\u max\u len的限制,那么您可以查询目标数据的子集,然后将结果合并到一起。

我认为属性是以字节为单位的大小,而不是查询行数。我认为最好的建议是不要使用group\u concat。