首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中使用set @变量?

如何在mysql中使用set @变量?
EN

Stack Overflow用户
提问于 2019-04-09 12:19:55
回答 1查看 64关注 0票数 2

我希望将select列表设置为变量,并对其执行一些条件检查:

这是我的代码,不起作用:

代码语言:javascript
复制
set @temp = (select docId from table_1);
SELECT 
   id,
   CASE when id IN (@temp) then 'TRUE' else 'FALSE' end as visited
FROM table_2;

也尝试过这样做:

代码语言:javascript
复制
set @temp = (select docId from table_1);
SELECT 
   id,
   CASE when (FIND_IN_SET(id,@temp)=1) then 'TRUE' else 'FALSE' end as visited
FROM table_2;

在这两种情况下,访问的列对于每一行都是假的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 13:38:26

您可以将LEFT JOINGROUP BY一起使用。左联接可能导致与table_2相对应的重复行(因为table_1中可能有多行用于相同的id值);要处理这个问题,我们将使用Group ByCount()函数可用于确定id是否存在于table_1中,并据此确定真假。

尝试以下几点:

代码语言:javascript
复制
SELECT 
   t2.id,
   CASE WHEN t1.docId IS NOT NULL THEN 'TRUE' ELSE 'FALSE' END AS visited
FROM table_2 t2
LEFT JOIN table_1 t1 ON t1.docId = t2.id 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55592725

复制
相关文章

相似问题

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