2010-05-31 46 views
0

我想獲得不同值的字段,讓說:字段1 ... 這需要像一個查詢:「從表中選擇不同的(字段1)」MySQL的條件查詢 - 複雜

但是對於某些記錄, field1是空的,並且有另一個字段是field1的替代字段,它是field2。對於field1爲空的記錄,我需要使用field2的值。我想我需要一個有條件的選擇語句與如果控制類似的東西:

select distinct((if(field1!='') field1 else field2)) from table 

我不知道如何編寫它。任何幫助表示讚賞...

+0

也許不是那麼複雜:) – emre 2010-05-31 07:39:52

回答

1
SELECT DISTINCT (
IF(coalesce(field1,'') <> '', field1, field2) 
) 
FROM table 

這兩個空和空field1工作。

+0

謝謝!有用。 – emre 2010-06-01 13:59:11

2

SELECT DISTINCT IFNULL(FIELD1,FIELD2)FROM表

應該做的伎倆。

+0

您的解決方案返回64結果,而我的查詢下面返回74!?!我分析結果以查看差異,並在稍後發佈我的評論。 – emre 2010-05-31 07:45:01

0

我想我做到了(不知道結果是正確的):

SELECT DISTINCT (
IF(field1 <> '', field1, field2) 
) 
FROM table 
+1

NULL值和空字符串不一樣。也許這解釋了差異? – 2010-05-31 07:55:55