有时候,需要从整个MySQL库中搜索某一字符串,但却不知道在哪个表哪个字段,用下面的存储过程,So Easy.
DELIMITER // DROP PROCEDURE IF EXISTS `proc_FindStrInAllDB`// # CALL `proc_FindStrInAllDB` ('testdb','中'); CREATE PROCEDURE `proc_FindStrInAllDB` ( IN p_dbname VARCHAR(128), IN p_finstr VARCHAR(128) ) BEGIN -- 需要定义接收游标数据的变量 DECLARE tmp_dbname VARCHAR(128); DECLARE tmp_tbname VARCHAR(128); DECLARE tmp_colname VARCHAR(128); -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; -- 游标 DECLARE cur_db_tb CURSOR FOR SELECT #*, C.table_schema,C.table_name,C.COLUMN_NAME FROM information_schema.`COLUMNS` C INNER JOIN information_schema.`TABLES` T ON C.`TABLE_NAME`=T.`TABLE_NAME` WHERE T.`TABLE_TYPE`='BASE TABLE' AND (C.data_type LIKE '%char%' OR C.data_type LIKE '%text%') AND (C.TABLE_SCHEMA=p_dbname OR IFNULL(p_dbname,'') ='') AND IFNULL(p_finstr,'')<>''; -- 将结束标志绑定到游标 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; CREATE TEMPORARY TABLE IF NOT EXISTS rstb(dbname VARCHAR(128),tbname VARCHAR(128),colname VARCHAR(128),cnt INT); -- 打开游标 OPEN cur_db_tb; -- 开始循环 read_loop: LOOP -- 提取游标里的数据,这里只有一个,多个的话也一样; FETCH cur_db_tb INTO tmp_dbname,tmp_tbname,tmp_colname; -- 声明结束的时候 IF done THEN LEAVE read_loop; END IF; -- 这里做你想做的循环的事件 SET @sqlstr=CONCAT('select count(1) into @rn from ',tmp_dbname,'.',tmp_tbname,' where ',tmp_colname,' like ''%',p_finstr,'%'''); PREPARE str FROM @sqlstr; EXECUTE str; DEALLOCATE PREPARE str; IF IFNULL(@rn,0)>0 THEN INSERT INTO rstb VALUES(tmp_dbname,tmp_tbname,tmp_colname,@rn); END IF; END LOOP; -- 关闭游标 CLOSE cur_db_tb; SELECT * FROM rstb; DROP TABLE rstb; END // DELIMITER ;
相关推荐
mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...
mysql解析Json字符串插件 安装方法 1、拷贝lib_mysqludf_json_parsing.dll到mysql目录C:\Program Files\MariaDB 5.5\lib\plugin下 2、在数据库中执行 DROP FUNCTION json_get; CREATE FUNCTION json_get RETURNS ...
一、函数功能:对字符串进行分隔数组,取指定顺序位置的子字符串,支持左右双向获取,支持默认值返回,附有测试用例 二、函数格式:fn_get_split_val(in_str varchar,in_delimiter varchar,in_order int,in_default ...
利用mysql中提供的所有函数,组成的一个存储过程。此存储过程主要是将传入的字符串分割为多个值,单个列。
asp连接mysql字符串,使用odbc 3.51
如有需要MySQL数据库驱动及连接字符串的哥们儿,请不要错过,绝对无误!!!
MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作MySQL字符串操作
mysql分割
输入2个中文字符串,计算2个字符串的相似度,用于相似度排序。
亲测可用,mysql字符串相似度匹配函数。下载后直接在mysql中可以测试运行。
MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL mysql> select concat('11','22',null); +------------------------+ | concat('11','22',null) | +------------------------+ | NULL | +...
字符串提取(获取两个字符串中间的字符串) http://blog.csdn.net/isaced/archive/2011/01/24/6161259.aspx
MySql连接字符串总结 MySql连接字符串总结
mysql拼接字符串函数
MySQL自定义函数 获取随机字符串. string = date +time + random(6)
mysql常用字符串函数、字符串处理函数大全。word文档内容中涵盖了mysql数据库字符串处理的38个函数。可完全满足日常对mysql数据库的字符处理操作。
小编童鞋最近接了一个新需求,需要在MySql的字段中截取一段字符串中的特定字符,下面小编把我的核心代码分享给大家,对mysql 字符串截取相关知识感兴趣的朋友一起看看吧
MySql连接字符串问题,我搞了半天。对于初学者来说还是有用的。
批量替换 MySQL 指定字段中的字符串是数据库应用中很常见的需求,但是有很多初学者在遇到这种需求时,通常都是用脚本来实现;其实,MySQL 内置的有批量替换语法,效率也会高很多;想了解具体方法,继续阅读本文吧 :)