select * from guser where (gname='刘已' or ename='刘已') and gid=(select gid from guser where gtel='15000000000')
子查询select gid from guser where gtel='15000000000'共查出两条记录,这时整个查询语句报错,在子查询得到一条记录时不报错,如何写才能在子查询得到两条记录时正常执行(只要一条查询语句)
子查询select gid from guser where gtel='15000000000'共查出两条记录,这时整个查询语句报错,在子查询得到一条记录时不报错,如何写才能在子查询得到两条记录时正常执行(只要一条查询语句)
from guser
where (gname='刘已' or ename='刘已')
and gid in (select gid from guser where gtel='15000000000')
select * from guser where (gname='刘已' or ename='刘已') and gid
IN(select gid from guser where gtel='15000000000')
sprintf(query,"select * from guser where (g_name='刘尧' or e_nam e='刘尧' or t_name='刘尧') and g_id in (select g_id from guser where g_tel='15049616161')");
if(!mysql_query(my_conn,query))
{
ress=mysql_use_result(my_conn);
while((roww=mysql_fetch_row(ress))!=NULL)
{
strcpy(liu,roww[5]);
printf("%s,%d\n",row[3],liu[0]);
}
mysql_free_result(ress);
}
应该有两条记录g_id分别为1和2,如果是一条记录就可以成功执行,两条就会报错“段错误”。同样的用“IN”的那条SQL语句在PHP里就可以成功执行(无论有几条记录)这是怎么回事?
select * from guser where (g_name='刘尧' or e_name='刘尧' or t_name='刘尧') and g_id in (select g_id from guser where g_tel='15049616161')