首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联合选择和初始化用户定义变量

问联合选择和初始化用户定义变量
EN

Stack Overflow用户
提问于 2021-03-29 22:57:15
回答 1查看 15关注 0票数 0

我有一个相对较长的联合选择:

代码语言:javascript
复制
select A, B from table1 where C='xxx'
union select A, B from table2 where C='xxx'
union select A, B from table3 where C='xxx'
...

我想将xxx定义为用户定义的变量,这样我就不必多次重复这个条件。不幸的是,我的MySQL客户机(可视化)不支持多个语句,所以我不能在开始时使用SET。有没有一种方法可以在不改变SQL输出的情况下将用户定义的变量包含在这样的语句中?

EN

回答 1

Stack Overflow用户

发布于 2021-03-29 23:12:08

您几乎可以在查询中的任何地方使用@varname:='value'。在这种情况下,您可以:

代码语言:javascript
复制
select A, B 
from table1 
JOIN (SELECT @x:='xxx') x 
where C=@x
union select A, B from table2 where C=@x
union select A, B from table3 where C=@x
...

或者,您可以再添加一个联合:

代码语言:javascript
复制
SELECT null,null FROM (SELECT @x:='xxx') x WHERE 0
union select A, B from table1 where C=@x
union select A, B from table2 where C=@x
union select A, B from table3 where C=@x
...

您可以将@x:='xxx'放在任何方便的地方,只要注意执行的顺序即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66856516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档