我有一个类似的 SQL 查询
SELECT SUM(price) FROM budget GROUP BY {{PLACEHOLDER}}
其中 {{PLACEHOLDER}} 将在代码中被替换。是否可以将其替换为与以下语句产生相同输出的内容?
SELECT price FROM budget
如果您有一个独特的列,例如自动生成的 id,您可以使用它
SELECT SUM(price) FROM budget GROUP BY budget_id
将等于
SELECT price FROM budget
如果每一行都有不同的budget_id(身份,自动增量字段将适合账单)
现在,我敦促您重新考虑进行这种黑客攻击的智慧,为什么不在重要的地方加上 if 呢?
...GROUP BY NEWID()
每行随机,因此从不聚合。并与键列、模式等分开
我的建议是当且仅当占位符存在时,才将 GROUP BY 直接包含在您的占位符中:
if (!empty($placeholder)) {
$placeholder = 'GROUP BY ' . $placeholder;
}
如果我理解正确,您希望通过有效省略组。在这种情况下,将其设为 GROUP BY ROW_ID 这将产生相同的结果