如何在MYSQL中用SQL语句实现“判断select所得的结果集中是否有查询结果”

时间:2021-11-17 01:05:47
RT
因为我需要在得知某表中的一些满足条件的数据是否存在而决定采取的操作(是在触发器中使用)
比如说我用了select * from table where condition
然后我如何判断出这一个语句是否有查出结果,如果没有,我才去做下一步的操作。。。
在此请教,请知道如何解决的人帮帮忙,3Q了哈~~:)

6 个解决方案

#1


set @a=1;
select @a:=count(0) from table1;
if @a>0
...
else
...
end if;

#2


试过了MS不行啊。。。
不管是在一般的请求输入,还是在触发器或者function里,都不掂哈。。。

#3


不知道下面是不是你需要的?
BOOL GetRecordCondition(char *TableName/*表名*/,char *Condition/*条件*/)
{
static char buf[256];
sprintf(buf,"SELECT * FROM %s WHERE %s",TableName,Condition);
if(0 !=mysql_query(&mysql,buf))
{
printf("查表出错%s",mysql_error(&mysql));
return FALSE;
}
m_res=mysql_store_result(&mysql);//把查询的结果
if (m_res ==NULL)
{
fprintf(stderr,"Error!!%s",mysql_error(&mysql));
return FALSE;
}
int count=mysql_num_rows(m_res);
if(count <=0)
{
printf("空\n");
return FALSE;
}
printf("查询成功\n");
//mysql_free_result(m_res);
return TRUE;
}

#4


不好意思~~
我要的不是程序的执行代码,如果是用程序来做判断我的后台servlet已经实现了,我想要的是把这项工作交由数据库来做,用SQL语句来完成

#5


貌试有个next 指针吧  !

:)
Statement stmt=conn.creatStatement();
String sql="select * from table";
RusultSet rs=stmt.executeQuery(sql);
 while(rs.next())
{

}

#6


汗。。。用程序代码来执行我当然知道。。。早就OK了。。。
我想要的是像klan写的那样的SQL语句。。。
(关键在于MySQL有很多语法不支持,所以试了很多都不行,例如存储过程或者function都试过,但是就是declare一个变量以后,在以后的sql语句无法使用,说是找不到这个变量)

请要做回答的朋友看清楚:我需要的是全部由SQL语句在数据库执行请求时完成的,谢谢了

#1


set @a=1;
select @a:=count(0) from table1;
if @a>0
...
else
...
end if;

#2


试过了MS不行啊。。。
不管是在一般的请求输入,还是在触发器或者function里,都不掂哈。。。

#3


不知道下面是不是你需要的?
BOOL GetRecordCondition(char *TableName/*表名*/,char *Condition/*条件*/)
{
static char buf[256];
sprintf(buf,"SELECT * FROM %s WHERE %s",TableName,Condition);
if(0 !=mysql_query(&mysql,buf))
{
printf("查表出错%s",mysql_error(&mysql));
return FALSE;
}
m_res=mysql_store_result(&mysql);//把查询的结果
if (m_res ==NULL)
{
fprintf(stderr,"Error!!%s",mysql_error(&mysql));
return FALSE;
}
int count=mysql_num_rows(m_res);
if(count <=0)
{
printf("空\n");
return FALSE;
}
printf("查询成功\n");
//mysql_free_result(m_res);
return TRUE;
}

#4


不好意思~~
我要的不是程序的执行代码,如果是用程序来做判断我的后台servlet已经实现了,我想要的是把这项工作交由数据库来做,用SQL语句来完成

#5


貌试有个next 指针吧  !

:)
Statement stmt=conn.creatStatement();
String sql="select * from table";
RusultSet rs=stmt.executeQuery(sql);
 while(rs.next())
{

}

#6


汗。。。用程序代码来执行我当然知道。。。早就OK了。。。
我想要的是像klan写的那样的SQL语句。。。
(关键在于MySQL有很多语法不支持,所以试了很多都不行,例如存储过程或者function都试过,但是就是declare一个变量以后,在以后的sql语句无法使用,说是找不到这个变量)

请要做回答的朋友看清楚:我需要的是全部由SQL语句在数据库执行请求时完成的,谢谢了