2013-06-21 48 views
0

我已經留下了一些代碼,看起來像這樣:如何重寫此SELECT查詢

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' 

或全部一些其他的方式?

回答

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 

所有*也基本上擴大到表上的所有可用列。