0

我留下了一些看起来像这样的代码:

SELECT DISTINCT ee.* FROM exp_extensions ee WHERE enabled = 'y'

我们的数据库管理员对全选大喊大叫,并希望我们分别获取所有单独的字段。我以前从未见过SELECT DISTINCT *;我将如何重写它?

选项1:

SELECT DISTINCT ee.extension_id, ee.class, ee.method, ee.hook, ee.settings, ee.priority, ee.version, ee.enabled  FROM exp_extensions ee WHERE enabled = 'y'

选项 2:

SELECT DISTINCT (ee.extension_id, ee.class, ee.method, ee.hook, ee.settings, ee.priority, ee.version, ee.enabled)  FROM exp_extensions ee WHERE enabled = 'y'

或者完全是其他方式?

4

1 回答 1

1

选项 1 或选项 2 之间没有区别。假设您有一个表,其中一列col1一行。 所有这些都会产生相同的结果:

SELECT DISTINCT * FROM t1
SELECT DISTINCT col1 FROM t1
SELECT DISTINCT (col1) FROM t1
SELECT * FROM t1
SELECT col1 FROM t1
SELECT (col1) FROM t1

所有*所做的基本上都是扩展到表上所有可用的列。

于 2013-06-21T21:34:08.047 回答