选择id不相同的每一行

时间:2015-05-05 08:37:13

标签: mysql

我有点困惑,我在寻求一些大师的帮助

我有这张桌子(名为" mytable")

ID   |   Colum_a   |   Column_b
121      100             NULL
122      150             200
123      100             100
124       50             NULL
125     NULL              5

要选择ID,我使用像这样的简单查询

SELECT id FROM mytable WHERE Colum_a > 0 OR Column_b > 0
显然,我有这个结果:

ID
121
122
123
124
125

现在,我的"头部划伤" (而这里我很困惑......)。 我需要"分开"两列(Column_a和Column_b)允许"复制" id。

为了更清楚,我需要一个这样的结果(在未来的foreach循环中使用,php):

ID   |   Result   
121      100
122      150            
122      200            
123      100    
123      100
124       50
125        5

我尝试过这个查询,但它不起作用......

SELECT ID FROM mytable WHERE Column_a > 0 OR Column_b > 0 IN
(SELECT ID FROM mytable GROUP BY ID HAVING COUNT(*) > 1)

任何帮助都会非常感激。感谢。

1 个答案:

答案 0 :(得分:4)

也许使用union all

select ID, Colum_a  as res from mytable WHERE Column_a > 0
union all 
select ID, Colum_b  as res from mytable WHERE Column_b > 0
order by ID asc;