在mysql中好像并没有提供split的函数,即使有那么该如何接收返回值呢?数组吗.
反正我只能间接的实现,如下:
DELIMITER $$;
DROP FUNCTION IF EXISTS `func_getSplitCount`$$
CREATE FUNCTION `func_getSplitCount`(
f_string varchar(1000),f_delimit varchar(5)
) RETURNS int(11)
BEGIN
return 1+(length(f_string) - length(replace(f_string,f_delimit,'')));
END$$
DELIMITER ;$$
DELIMITER $$;
DROP FUNCTION IF EXISTS `func_getSplitString`$$
CREATE FUNCTION `func_getSplitString`(
f_string varchar(1000),f_delimit varchar(5),f_order int
) RETURNS varchar(255)
BEGIN
declare result varchar(255) default '';
set result = reverse(substring_index(reverse(substring_index(f_string,f_delimit,f_order)),f_delimit,1));
return result;
END$$
DELIMITER ;$$
-- 以下是利用这个split的一个片段
....
set loopCount = func_getSplitCount(orString,splitDelimit);
WHILE(loopCount > 0) DO
set temp_orWhere = concat(temp_orWhere,' or cIdxMapCd = \'',func_getSplitString(orString,splitDelimit,loopCount),'\'');
set loopCount = loopCount - 1;
END WHILE;
....
恩就是这样,至少我没有更好的办法.
利用length函数和replace计算出split的个数,然后利用substring_index和reverse函数取出指定位置的内容,最后利用循环,不断的去拿.
分享到:
相关推荐
在MySQL数据库中,`SPLIT`函数并不是内置的函数,但我们可以使用其他方式来实现类似的功能,即字符串分隔。通常,我们用`SUBSTRING_INDEX()`或`REGEXP_REPLACE()`结合`FIND_IN_SET()`来分割字符串。这些函数在处理...
在SQL中,处理字符串时确实不如其他编程语言那样灵活,...以上就是在MySQL中实现类似SPLIT功能的方法,虽然不如某些编程语言直接支持数组那样方便,但通过自定义函数和巧妙的逻辑,我们仍然可以有效地处理分隔字符串。
在MySQL中,有时候我们需要将一个字符串按照特定的分隔符拆分成多个部分,这就需要用到`split`功能。虽然MySQL的标准库中没有直接提供`split`函数,但可以通过自定义存储过程和函数来实现类似的功能。这里我们将详细...
在本示例中,我们将深入探讨如何在MySQL中创建一个存储过程,用于将字符串按照指定的分隔符进行拆分,即实现类似JavaScript中的`split()`函数的功能。 首先,我们来看一下提供的存储过程代码: ```sql drop ...
同样地,在DB2中使用`TO_DATE`函数转换字符串为日期时间,而在MySQL中则使用`STR_TO_DATE`函数。 ```sql -- DB2 SELECT F_GET_STR_TO_DATE(startDate DATETIME, split_format VARCHAR(25), dateType VARCHAR(3)) --...
在本文中,我们将深入探讨如何使用Java开发一个串口助手应用程序,该程序能接收来自串行端口的数据并将其解析后存储到MySQL数据库中。首先,我们需要了解串口通信的基本概念,然后学习Java如何处理串口输入,接着是...
在“使用sqoop抽取mysql数据”的场景中,我们需要了解以下关键知识点: 1. ** Sqoop 安装与配置**:首先,你需要在 Hadoop 集群或本地环境中安装 Sqoop,并配置相关的数据库连接信息,包括 JDBC 驱动、数据库服务器...
在C#中,我们可以使用`MySqlCommand`类来执行这些操作。例如,以下代码展示了如何创建一个备份脚本: ```csharp using MySql.Data.MySqlClient; string backupCommand = "mysqldump -u [username] -p[password] ...
1. **数据获取**:使用`QueryDatabaseTable`或`ExecuteSQL`处理器从MySQL中提取JSON格式的数据。这些处理器允许我们编写SQL查询,以选择需要的数据。 2. **数据转换**:接收到JSON数据后,使用`ConvertJSONToText`...
在Java编程中,将数据从TXT文件读取并导入MySQL数据库是一项常见的任务,涉及到文件操作、字符串处理以及数据库交互等多个知识点。以下是对这些关键概念的详细解释: 1. **文件操作**:`FileOper.java`可能包含了对...
Split支持多种存储器,包括内存存储、数据库存储(如Redis、MySQL)等。选择合适的存储器取决于你的应用规模和需求。 在定义实验时,你可以使用Split提供的助手方法,如`split_test`,它接受特征名和一个哈希,哈希...
垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的。当一个网站还在很小的时候,只有小量的人来开发和维护,各模块和表都在一起,当网站不断...
使用以下命令将 MySQL 中的 `person` 表导入到 HDFS 中的 `/test` 目录下: ```bash # 删除已存在的目标目录,如果有的话 sqoop import --connect jdbc:mysql://<hostname>:<port>/<database> --username ...
在实际应用中,MySQL Router可以与其他MySQL产品,如InnoDB Cluster、MySQL Replication等配合使用,构建高可用、可扩展的数据库集群。通过持续监控和调整路由策略,可以进一步优化数据库系统的性能和稳定性。 总结...
在Java中与MySQL交互,我们通常会使用JDBC(Java Database Connectivity)API。JDBC提供了一种标准的方式来连接和操作数据库。首先,你需要在项目中引入MySQL的JDBC驱动,例如通过Maven或Gradle添加对应的依赖。 接...
如果你需要从现有表中复制数据,可以使用 `SELECT ... INTO` 语句,但MySQL不支持直接将查询结果存入临时表,所以通常采用 `CREATE TABLE AS SELECT` 或 `INSERT INTO ... SELECT` 的方式: ```sql -- 创建临时表并...