我有一张表A (Id1, Id2, someValue)
我想在mySQL中实现的目标:
我的SELECT
查询应该返回
两行:
Id1, someValue
Id2, someValue
(基于某种条件 - 例如,someValue> N)
如何在不使用UNION
的情况下实现这一目标?
答案 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}。