mysql如何查看某个表在哪些存储过程中用那个到了?

SELECT*FROMmysql.proc

WHEREtype='PROCEDURE'

ANDspeci_name='P_UserBetDayDetail'

ANDBodyLIKE'%Report_UserBetDayDetail%';

mysql.proc:指向查询的目标表;

type='PROCEDURE':表示该查询是一个存储过程;

special_name='P_UserBetDayDetail':表示存储过程指定的查询名称;

BodyLIKE'%Report_UserBetDayDetail%':表示该查询包含的表程序内容商店。

MYSQL存储过程取得一个表的查询结果

假设表A有3个字段,ID、DATA1和DATA2,如果简单的话,不需要使用存储过程,例如:select*formAwhereIDin(selectIDfromAwhereDATA1Between0and100)。
嵌套操作,存储过程可以如下示例:CREATEPROCEDUREtest(in_startint,in_endint)BEGINDECLAREidsTEXT;selectGROUP_CONCAT(ID)intoidsfromAwhereDATA1Betweenin_startandin_end;select*fromAwhereFIND_IN_SET(ID,ids)>0;END注:in_start、in_end为DATA1的过滤范围。
选择最后一项直接返回表直接使用SQL有优点也有缺点,当你使用大量的SQL查询和操作,以及存储过程写入数据库后,使用存储过程是非常高效的。
它们会自动编译并运行得更快SQL每次执行时都需要编译。
但调试存储过程比较麻烦,不像使用编程语言和SQL时可以一步调试。
而且如果你不擅长优化存储过程的效率,那么使用存储过程可能会比使用SQL慢。