`

在MySQL中全库搜索指定字符串

 
阅读更多

有时候,需要从整个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分割字符串

    在MySQL数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...

    [字符串]字符串提取(获取两个字符串中间的字符串)

    1. **IndexOf**:此方法用于查找指定字符串在当前字符串中的第一次出现位置。返回值是子字符串的起始索引,如果未找到则返回-1。 2. **Substring**:根据提供的起始索引和长度,截取字符串的一部分。 例如,假设...

    mysql 计算字符串相似度

    在许多应用场景中,我们需要对两个字符串进行相似度比较,比如搜索引擎中的关键词匹配、文本分析中的近义词识别等。MySQL 提供了多种方法来实现字符串相似度的计算,其中一种较为常见的做法是通过自定义函数来实现。...

    mysql 解析json字符串

    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 ...

    MySql函数-取一个字符串分隔后指定位置的子字符串

    一、函数功能:对字符串进行分隔数组,取指定顺序位置的子字符串,支持左右双向获取,支持默认值返回,附有测试用例 二、函数格式:fn_get_split_val(in_str varchar,in_delimiter varchar,in_order int,in_default ...

    MySQL数据库驱动及连接字符串

    在使用MySQL与应用程序交互时,驱动程序和连接字符串是两个关键组件。 MySQL驱动是编程语言与MySQL数据库之间沟通的桥梁,它允许你的应用程序执行SQL查询、管理数据等操作。不同的编程语言有不同的MySQL驱动,例如...

    mysql字符串连接函数

    在处理数据库中的字符串操作时,MySQL提供了多种强大的工具来帮助我们进行数据处理。本文主要介绍几种常用的字符串连接函数,包括`CONCAT()`、`CONCAT_WS()`以及`GROUP_CONCAT()`函数,并通过示例来详细解释它们的...

    Mysql字符串截取及获取指定字符串中的数据

    在MySQL中,处理字符串是常见的任务之一,尤其是在数据提取和分析的过程中。本文将详细介绍如何使用MySQL的字符串截取函数来获取指定字符串中的数据。 首先,我们来看一下`substring_index()`函数,这是一个非常...

    查找指定字符串+查找文本文件中的指定字符串

    本话题聚焦于如何在C++中查找指定字符串,包括在数据库中的表和字段以及文本文件中进行搜索。下面将详细阐述这一主题。 一、在数据库中查找指定字符串 在C++中,我们通常需要借助数据库接口库来连接和操作数据库,...

    批量替换 MySQL 指定字段中的字符串

    在数据库管理中,批量替换指定字段中的字符串是一个非常实用的操作,尤其在数据更新或迁移时。MySQL 提供了一个内置函数 `REPLACE()`,使得这个任务变得简单而高效。本篇文章将详细讲解如何利用 `REPLACE()` 函数在 ...

    mysql基于正则实现模糊替换字符串的方法分析

    在MySQL中,有时候我们需要对数据库中的字符串进行模糊替换,特别是在处理HTML标签或者特定模式的数据时。正则表达式(Regular Expression)在这种情况下显得尤为强大。MySQL提供了`REGEXP_REPLACE`函数(在某些版本...

    MySql字符串相似匹配

    亲测可用,mysql字符串相似度匹配函数。下载后直接在mysql中可以测试运行。

    MySql连接字符串

    在开发基于MySql数据库的应用程序时,正确配置数据库连接字符串是非常重要的一步。连接字符串包含了客户端与数据库服务器建立连接所需的各种参数。本文将深入解析一个典型的MySql连接字符串,并针对其中的关键参数...

    mysql拼接字符串函数

    MySQL 拼接字符串函数 MySQL 中有三个常用的字符串拼接函数:CONCAT、CONCAT_WS 和 GROUP_CONCAT。这些函数都可以用来将多个字符串连接起来,但是它们的使用场景和效果不同。 CONCAT 函数 CONCAT 函数的语法是 `...

    MySql连接字符串总结

    本篇文章将详细介绍不同类型的MySQL连接字符串及其用法。 首先,我们来看MySQL Connector/ODBC的连接方式。ODBC(Open Database Connectivity)是一种通用数据库访问接口,它允许应用程序通过ODBC驱动程序连接到...

    全局查询mysql数据中指定库中的指定字符串

    1、python编写 2、采用多线程 3、全局查询指定字符串,查询结果保存在result文件夹下面的文件中

    MySQL函数 获取随机字符串

    MySQL自定义函数 获取随机字符串. string = date +time + random(6)

    PB通过连接字符串连接MySQL

    在提供的压缩包文件“PBDemo_MySQLConnectString”中,很可能是包含了一个示例项目,演示了如何在PB 11.5中使用连接字符串连接到MySQL数据库。这个示例可能包含了创建数据源的步骤、编写连接代码以及执行简单查询的...

    mysql常用字符串函数、字符串处理函数大全

    11. `INSERT(str, pos, len, newstr)`:在字符串`str`的`pos`位置开始,用`newstr`替换`len`长度的子串。如果`pos`超出字符串长度,返回原始字符串。 12. `INSTR(str, substr)`:返回`substr`在`str`中的第一次出现...

    在mysql中将字符串日期转为日期型

    通过使用`STR_TO_DATE()`函数,可以在MySQL中轻松地将各种格式的字符串日期转换为日期类型,这对于处理复杂的日期数据非常有用。掌握该函数的用法可以帮助开发者更高效地管理数据库中的日期数据。

Global site tag (gtag.js) - Google Analytics