mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0
本文介绍了mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
select
if( EXISTS select
* from l
where t.name = l.name,1,0)
from t
如果t表里存在l表里的name 就显示1 否则显示0;
解决方案
如果t表数据量不大,用下面子查询的方式
select
t.name,
if((select count(*) from l where l.name = t.name)> 0, 1, 0)
from t
表关联的方式,在大数据的时候效率会更高一些
select
t.name,
IFNULL(t2.cnt, 0)
from t left join (
select name, 1 as cnt
from l
group by name
) t2 on t.name = t2.name
这篇关于mysql:如果一个结果集里包含另一个结果集,就显示1 否则显示0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文