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进去,这样就正常显示了。