create function SplitStr
(
F_SourceSql varchar(8000),
F_StrSeprate varchar(100)
)
RETURNS varchar(1000)
BEGIN
DECLARE F_ch varchar(100) ;
drop TABLE IF EXISTS tmpList;
CREATE TABLE tmpList (
F1 varchar(100)
);
set F_SourceSql=F_SourceSql+F_StrSeprate ;
while F_SourceSql!='' DO
set F_ch = left(F_SourceSql,LOCATE(',',F_SourceSql,1)-1) ;
insert tmpList values(F_ch) ;
set F_SourceSql=stuff(F_SourceSql,1,LOCATE(',',F_SourceSql,1),'') ;
END WHILE ;
end;以上是个函数脚本运行时“Explicit or implicit commit is not allowed in stored function or trigger.” 函数的功能是 将这样“1,2,3”字符串转换成一个表多列,以便做where 条件使用,希望高手解决下 谢谢了
(
F_SourceSql varchar(8000),
F_StrSeprate varchar(100)
)
RETURNS varchar(1000)
BEGIN
DECLARE F_ch varchar(100) ;
drop TABLE IF EXISTS tmpList;
CREATE TABLE tmpList (
F1 varchar(100)
);
set F_SourceSql=F_SourceSql+F_StrSeprate ;
while F_SourceSql!='' DO
set F_ch = left(F_SourceSql,LOCATE(',',F_SourceSql,1)-1) ;
insert tmpList values(F_ch) ;
set F_SourceSql=stuff(F_SourceSql,1,LOCATE(',',F_SourceSql,1),'') ;
END WHILE ;
end;以上是个函数脚本运行时“Explicit or implicit commit is not allowed in stored function or trigger.” 函数的功能是 将这样“1,2,3”字符串转换成一个表多列,以便做where 条件使用,希望高手解决下 谢谢了
解决方案 »
- mysql服务器raid 0,raid 1+0 stripe size划分策略
- mysql binlog
- #1045 - Access denied for user 'root'@'localhost'
- mysql根据查询结果再查询?
- 问个简单问题,最近看了几篇牛人写的文章,好像都不推荐使用连接和外键?这是为什么
- mysql5.0配置skip-name-resolve的问题
- SQL查询中<=条件问题。
- 求优化,排行榜功能.
- mysql 交叉表,怎么把表的横向变成纵向?
- 免安装版mysql5.6.24备份语句dump-uroot-proot firepower
- mysql两表相减问题
- A,B整数,经过计算相加,结果是要唯一的
DROP TABLE IF EXISTS tmpList;
CREATE TABLE tmpList (
F1 VARCHAR(100)
);
DELIMITER $$
CREATE FUNCTION SplitStr
(
F_SourceSql VARCHAR(8000),
F_StrSeprate VARCHAR(100)
)
RETURNS VARCHAR(1000)
BEGIN
DECLARE F_ch VARCHAR(100) ;
SET F_SourceSql=F_SourceSql+F_StrSeprate ;
WHILE F_SourceSql!='' DO
SET F_ch = LEFT(F_SourceSql,LOCATE(',',F_SourceSql,1)-1) ;
INSERT tmpList VALUES(F_ch) ;
SET F_SourceSql=stuff(F_SourceSql,1,LOCATE(',',F_SourceSql,1),'') ;
END WHILE ;
RETURN F_SourceSql;
END$$
DELIMITER ;直接用辅助表+SQL语句 拆分字符串
谢谢你的回复。
现在我去掉那个建表的操作,
这样 SplitStr1('aa,bb,cc',',');
select * from tmpList
提示:语法错误,哪里错了?
我是刚从MSSQL 转来的 有什么的不懂的地方还请多多包涵
udf是什么啊,sp是什么啊