有时候,需要从整个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数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...
mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...
在许多应用场景中,我们需要对两个字符串进行相似度比较,比如搜索引擎中的关键词匹配、文本分析中的近义词识别等。MySQL 提供了多种方法来实现字符串相似度的计算,其中一种较为常见的做法是通过自定义函数来实现。...
1. **IndexOf**:此方法用于查找指定字符串在当前字符串中的第一次出现位置。返回值是子字符串的起始索引,如果未找到则返回-1。 2. **Substring**:根据提供的起始索引和长度,截取字符串的一部分。 例如,假设...
一、函数功能:对字符串进行分隔数组,取指定顺序位置的子字符串,支持左右双向获取,支持默认值返回,附有测试用例 二、函数格式:fn_get_split_val(in_str varchar,in_delimiter varchar,in_order int,in_default ...
利用mysql中提供的所有函数,组成的一个存储过程。此存储过程主要是将传入的字符串分割为多个值,单个列。
在处理数据库中的字符串操作时,MySQL提供了多种强大的工具来帮助我们进行数据处理。本文主要介绍几种常用的字符串连接函数,包括`CONCAT()`、`CONCAT_WS()`以及`GROUP_CONCAT()`函数,并通过示例来详细解释它们的...
在MySQL中,处理字符串是常见的任务之一,尤其是在数据提取和分析的过程中。本文将详细介绍如何使用MySQL的字符串截取函数来获取指定字符串中的数据。 首先,我们来看一下`substring_index()`函数,这是一个非常...
本话题聚焦于如何在C++中查找指定字符串,包括在数据库中的表和字段以及文本文件中进行搜索。下面将详细阐述这一主题。 一、在数据库中查找指定字符串 在C++中,我们通常需要借助数据库接口库来连接和操作数据库,...
在数据库管理中,批量替换指定字段中的字符串是一个非常实用的操作,尤其在数据更新或迁移时。MySQL 提供了一个内置函数 `REPLACE()`,使得这个任务变得简单而高效。本篇文章将详细讲解如何利用 `REPLACE()` 函数在 ...
在MySQL中,有时候我们需要对数据库中的字符串进行模糊替换,特别是在处理HTML标签或者特定模式的数据时。正则表达式(Regular Expression)在这种情况下显得尤为强大。MySQL提供了`REGEXP_REPLACE`函数(在某些版本...
亲测可用,mysql字符串相似度匹配函数。下载后直接在mysql中可以测试运行。
在开发基于MySql数据库的应用程序时,正确配置数据库连接字符串是非常重要的一步。连接字符串包含了客户端与数据库服务器建立连接所需的各种参数。本文将深入解析一个典型的MySql连接字符串,并针对其中的关键参数...
MySQL 拼接字符串函数 MySQL 中有三个常用的字符串拼接函数:CONCAT、CONCAT_WS 和 GROUP_CONCAT。这些函数都可以用来将多个字符串连接起来,但是它们的使用场景和效果不同。 CONCAT 函数 CONCAT 函数的语法是 `...
本篇文章将详细介绍不同类型的MySQL连接字符串及其用法。 首先,我们来看MySQL Connector/ODBC的连接方式。ODBC(Open Database Connectivity)是一种通用数据库访问接口,它允许应用程序通过ODBC驱动程序连接到...
1、python编写 2、采用多线程 3、全局查询指定字符串,查询结果保存在result文件夹下面的文件中
CHAR 类型的字符串在存储时,会自动补齐到指定的长度,以便于快速存取数据。 变长字符串类型 变长字符串类型是指字符串的长度可以变化的。这种类型的字符串在存储时,会根据实际的字符串长度来占用存储空间。常见...
MySQL自定义函数 获取随机字符串. string = date +time + random(6)
在提供的压缩包文件“PBDemo_MySQLConnectString”中,很可能是包含了一个示例项目,演示了如何在PB 11.5中使用连接字符串连接到MySQL数据库。这个示例可能包含了创建数据源的步骤、编写连接代码以及执行简单查询的...
11. `INSERT(str, pos, len, newstr)`:在字符串`str`的`pos`位置开始,用`newstr`替换`len`长度的子串。如果`pos`超出字符串长度,返回原始字符串。 12. `INSTR(str, substr)`:返回`substr`在`str`中的第一次出现...