MySQL怎么查询可以同时判断多个字段值是否存在

比如注册查询 是否有手机号、邮箱、用户名、昵称重复,
SELECT COUNT(nickname) FROM user where nickname='果汁'
不能这样查4次吧,有办法一次性查出4个值是否存在吗,并且区分哪个存在哪个不存在

先用or把符合条件的全部查出来,然后select case when tel == 手机号 then 1 else 0 end 字段1...,这样就会出现至少一行数据,每行数据里面的字段1可能是1也可能是0,最后再sum下结果中的字段1,只要大于1就代表存在

但是像这种注册查询,最好还是一个一个查比较好

为什么不能查4次
你分别要查4列的数据,4列的行数都不一样
那么就得查4次
当然你可以把4次查询写进一个嵌套查询里面,而不用在上位机执行4个sql

方案一:
SELECT nickname || email || tel as sfcf FROM user where nickname='果汁' or email=‘邮箱’ or tel='手机号'
程序 根据是否重复sfcf字段判断哪个字段已存在


方案二:
SELECT COUNT(nickname) lx FROM user where nickname='果汁'
union all SELECT COUNT(email) lx FROM user where email='邮箱'
union all SELECT COUNT(tel) lx FROM user where tel='手机号'

程序查询后,指定一二三获取对应是否大于0