diff --git a/php/src/db/Capacitor.php b/php/src/db/Capacitor.php index d09f2e0..6dfa4e9 100644 --- a/php/src/db/Capacitor.php +++ b/php/src/db/Capacitor.php @@ -1,6 +1,7 @@ "?string", "schema" => "?array", + "distinct" => "bool", "cols" => "?array", "col_prefix" => "?string", "from" => "?string", @@ -45,8 +46,16 @@ class _select extends _common { if (($prefix = $query["prefix"] ?? null) !== null) $sql[] = $prefix; ## select - self::consume('(select(?:\s*distinct)?)\s*', $tmpsql, $ms); + self::consume('(select(?:\s*(distinct))?)\s*', $tmpsql, $ms); $sql[] = $ms[1]; + if (($ms[2] ?? null) !== null) { + # ne pas le rajouter de nouveau ci-dessous + $distinct = false; + } else $distinct = null; + + ## distinct + $distinct ??= $query["distinct"] ?? false; + if ($distinct) $sql[] = "distinct"; ## cols $usercols = [];