Mysql select 中的子查询返回多个字段

  • Post author:
  • Post category:mysql


Mysql select 中的子查询返回多个字段

我的表中刚好有个字段是json格式,其中有个id需要做联表查询。如果直接解析json联表会影响性能,因为会全表的数据解json。所以我就用到子查询,但mysql select 中的只查询只能返回一个字段,想返回多个怎么办呢。

不费话,真接上代码

set @a:=null;
set @b:=null;
SELECT 	(SELECT CONCAT(@a:=CONCAT(t1.id),@b:=t2.name)
		from t2
		where t1.json->>'$.id'=t2.id
		) as temp,
		@a as id,
		@b as name,
from t1
where t1.status=1

刚好在网上找到一位大神的骚操作

另外我刚好发现,如果直接把数字类型set进会话变量,字段会显示(BLOB)9 bytes,虽然并不知道会不会影响使用,但我还是把id转成字符串再set进去,这样就正常显示了。



版权声明:本文为qq_37751062原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。