【发布时间】:2016-09-11 12:33:15
【问题描述】:
我有一个包含 2 个字段的 SQL SELECT 请求:
SELECT `a`, `b` FROM `t`
(a 和 b 都是 VARCHAR(255))
我必须以这种方式连接它们:a (b)
我可以在数据库级别做到这一点:
SELECT CONCAT(`a`, ' (', `b`, ')') FROM `t`
或者在 PHP 脚本中:
$result = $resp['a'].' ('.$resp['b'].')';
哪种方式更正确、更高效?
附:我可以在自己的电脑上测试它,但是:
- 不同硬件上的结果可能不同;
- 我想了解这两种方式的优缺点,以便在我的项目中应用最佳实践。
【问题讨论】:
-
您自己的测试告诉您什么?就个人而言,我认为 CONCAT 和 GROUP_CONCAT 几乎是无用的和对立的(除非你同时对数据做其他事情),但这里的其他人喜欢这些功能。
-
@Strawberry 我的测试告诉我,您应该阅读所有问题(以及 P.S. 部分)
-
在几乎任何可能的情况下都完全不相关(从性能或功能的角度来看)。这听起来像是过早的优化。我个人会在数据库中执行此操作,但在应用程序中执行此操作可能有充分的理由。
-
@GordonLinoff 你能列出并解释这些原因吗?我之所以问这个问题,主要是因为这种“隐藏的知识”
-
你的测试是如何得出这个结论的
标签: php mysql sql performance concatenation