のグループ連結で使用する長さを判断する方法GROUP_CONCATを使用していますが、group_concat_max_len
の値を超えることについては心配しています。デフォルトは1024ですので、具体的にどのくらい具体的に知ることができる方法が必要ですSELECT
そのプロパティの許容された長さから使用されるクエリ?例えばMySQLクエリ
は、次の問合せをするとします。
'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';
私のアプリケーションはlaravel-5.4を使用して構築されており、私はそれがまた良くなるLaravelを使用して動的にgroup_concat_max_len
を設定するので、そこかの方法をDB::select()
を使用しています。しかし、私はデータベースサーバーへの完全なアクセス権を持っており、group_concat_max_len
を永久に設定することができます。
私は、GROUP_CONCATを使用しないことをお勧めします。 – Strawberry