比如数据表结构是
id | a | b | target |
---|---|---|---|
1 | a1 | b1 | a1 |
2 | a2 | b2 | b2 |
3 | a3 | b3 | b3 |
4 | a4 | b4 | b8 |
5 | a5 | b5 | a5 |
如果target列和a列相等就返回b列,如果target列和b列相等就返回a列结果,不相等就不返回,列的数据结构都是字符串
期望的查询结果是 b1, a2, a3,b5
求大神指导!能不能有优雅一点的写法
比如数据表结构是
id | a | b | target |
---|---|---|---|
1 | a1 | b1 | a1 |
2 | a2 | b2 | b2 |
3 | a3 | b3 | b3 |
4 | a4 | b4 | b8 |
5 | a5 | b5 | a5 |
如果target列和a列相等就返回b列,如果target列和b列相等就返回a列结果,不相等就不返回,列的数据结构都是字符串
期望的查询结果是 b1, a2, a3,b5
求大神指导!能不能有优雅一点的写法
select t.b
from table t
where t.a = t.target
union
select t.a
from table t
where t.b = t.target
6 回答3.4k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
4 回答2k 阅读
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
select if(target = a, b, a) as 字段名 from table where target = a or target = b;