mysql查找变量所在的表格_mysql 查询整个数据库中某个特定值所在的表和字段的方法 如何写存储过程?...

这篇博客讨论了如何在MySQL中模仿SQL Server的查询方式,以找出数据库中包含特定值的所有表和字段。作者尝试创建一个存储过程来遍历所有表和列,但遇到了错误。他们寻求帮助来修正MySQL的语法,以便能正确运行该过程。
摘要由CSDN通过智能技术生成

sqlserver查询整个数据库中某个特定值所在的表和字段的方法在网上比比皆是,mysql的却没有,自己试着用mysql的语法来改?在mysql中运行还是有错,还请高人指点~CREATEPROCEDUREcheckt...

sqlserver查询整个数据库中某个特定值所在的表和字段的方法在网上比比皆是,mysql的却没有,自己试着用mysql的语法来改?在mysql中运行还是有错,还请高人指点~

CREATE PROCEDURE checktable(valu VARCHAR(1024))

BEGIN

DECLARE v_sql VARCHAR(1024);

DECLARE v_table VARCHAR(64);

DECLARE v_column VARCHAR(64);

-- 这个用于处理游标到达最后一行的情况

declare stop int default 0;

CREATE TEMPORARY TABLE tmp_table (

tablename VARCHAR(64) ,

columnname VARCHAR(64)

)

-- 声明游标

declare cur_tables cursor for SELECT TABLE_NAME, COLUMN_NAME FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA='phpcmsv9' ORDER BY TABLE_NAME,COLUMN_NAME;

-- 声明游标的异常处理,设置一个终止标记

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop=1;

-- 打开游标

OPEN cur_tables

-- 读取一行数据到变量

fetch cur_tables into tablename,columnname;

-- 这个就是判断是否游标已经到达了最后

while stop <> 1 do

-- 操作

SET v_sql = 'IF EXISTS(SELECT NULL FROM [' + v_table + '] '

SET v_sql = v_sql + 'WHERE RTRIM(LTRIM([' + v_column + '])) LIKE ''%' + valu + '%'') '

SET v_sql = v_sql + 'INSERT INTO tmp_table VALUES (''' + v_table + ''', '''

SET v_sql = v_sql + v_column + ''')'

call EXEC(v_sql)

-- 读取下一行的数据

fetch cur_tables into tablename,columnname;

end while; -- 循环结束

close cur_tables; -- 关闭游标

end;

SELECT *

FROM tmp_table

DROP TABLE tmp_table

End

-- CALL checktable('模块管理')

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值