从mySQL中的单个表行中选择两行

时间:2011-10-27 12:12:15

标签: mysql sql

我有一张表A (Id1, Id2, someValue)

我想在mySQL中实现的目标:

我的SELECT查询应该返回 两行:

Id1, someValue
Id2, someValue

(基于某种条件 - 例如,someValue> N)

如何在不使用UNION的情况下实现这一目标?

4 个答案:

答案 0 :(得分:1)

由于在不使用UNION的情况下无法做到这一点,以下是如何使用它进行存档:

(SELECT ID1 as ID, someValue FROM A WHERE someValue > N)
UNION
(SELECT ID2 as ID, someValue FROM A WHERE someValue > N)

答案 1 :(得分:1)

怎么样:

SELECT 
    CASE
        WHEN somecondition THEN ID1
        ELSE ID2
    END AS ID, someValue
FROM that_table

somecondition可以是一个类似于WHERE子句中使用的表达式。

答案 2 :(得分:0)

你能不能只使用或?例如:

select * from A where someValue = 'x' OR someValue 'y'

答案 3 :(得分:0)

如果需要以分隔的行返回,则最好将db模式拆分为“id,someValue”。在插入时,只需插入{id1_value,someValue},{id2_value,someValue},并在检索时从表中选择value = someValue。你会得到你期望的回报。

如果您需要以某种方式关联id1和id2(制作链接列表或其他内容),您可以将相关的ID添加到条目中。架构可以是 {id,value,related_id}。