2 weixin 36752065 weixin_36752065 于 2017.09.11 12:37 提问

select 查询中@变量的使用

使用变量:SELECT @a :=id FROM table_a

WHERE channel_id='519d5ed0-54ed-40a0-a1cd-095ed0edb507';
---37条数据
SELECT @b := pk_id FROM team WHERE id = @a;
---1条数据

不用变量:SELECT pk_id FROM team WHERE id

in (SELECT id FROM table_a

WHERE channel_id='519d5ed0-54ed-40a0-a1cd-095ed0edb507')
-- 18条数据

为什么出现这种情况?求解

3个回答

zxc123e
zxc123e   2017.09.11 12:55

WHERE id = @a

WHERE id in (SELECT id FROM table_a
WHERE channel_id='519d5ed0-54ed-40a0-a1cd-095ed0edb507')

一个是等号,一个in,当然不一样。上面@a只是一个值,而下面子查询的结果是一个集合,并且你也用的是in。

weixin_36752065
weixin_36752065 那怎么才能将多个值一起赋给一个变量呢,也就是@a中怎么才包含37条数据呢
2 个月之前 回复
huang931027
huang931027   2017.09.11 17:02

怎么才能将多个值一起赋给一个变量 ,把数据封装成一个List ,查的是时候迭代的查

liubo_10184653
liubo_10184653   2017.09.12 14:53

mysql不支持数组类型的变量的,可以用临时表什么的。

Csdn user default icon
上传中...
上传图片
插入图片