本人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白。今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句。

关于字符串 分割我开始使用 LOCATE 和Position来做,不知道在proc 里面有时候报错,单独的查询有可以。后来在网上 找了一个 Mysql存储过程中字符串分割文章, 很多地方都推荐使用  SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(plate_sku_name,',',i)),',',1));

至于执行sql 则需要  PREPARE sql1 FROM @sql1;  EXECUTE sql1;   感觉也比MSSQL复杂。

DELIMITER $$   

DROP PROCEDURE IF EXISTS simple_while$$   

CREATE PROCEDURE simple_while(IN period_no VARCHAR(), IN all_test_id TEXT, OUT return_count INT)
BEGIN
SET return_count=;
SET @i=;
SET @arraylength=+(LENGTH(all_test_id) - LENGTH(REPLACE(all_test_id,',','')));
WHILE @i<@arraylength
DO
SET @i=@i+;
SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(all_test_id,',',@i)),',',));
SET @sql=CONCAT('Update test_',period_no,' Set is_cancel = 1 WHERE all_test_id = ',@result);
PREPARE sql1 FROM @sql;
EXECUTE sql1;
SET return_count=return_count+ ROW_COUNT();
END WHILE; END$$ DELIMITER ;

mysql 字符串分割 和 动态执行拼接sql的更多相关文章

  1. mysql怎么终止当前正在执行的sql语句

    mysql怎么终止当前正在执行的sql语句 show processlist; kill 要杀的ID kill 7

  2. MySQL 字符串 分割 多列

    mysql如何进行以,分割的字符串的拆分 - 我有一个梦想 - CSDN博客https://blog.csdn.net/u012009613/article/details/52770567 mysq ...

  3. mysql字符串分割函数(行转列)

    由于工作需要需要处理一些以逗号分隔的字符串,每次都要现做很是麻烦,网上找了很多都没有现成的,好吧,自己动手写一个好了 )) ) BEGIN /*函数功能: 把带逗号的字符串分割取出 参数: num 要 ...

  4. mysql监控每一条执行的sql语句

    查看日志配置是否打开 SHOW VARIABLES LIKE "general_log%"; SET GLOBAL general_log = 'ON';   打开日志 SET G ...

  5. MySQL Transaction--查看未提交事务执行的SQL

    未提交事务 长期未提交事务,指开启事务后,长时间未向MySQL发出SQL执行请求或事务处理(COMMIT/ROLLBACK)请求,在系统表`information_schema`.`INNODB_TR ...

  6. mysql function动态执行不同sql语句

    create procedure cps() begin ) default 'user'; set strSql = concat('select * from ',table_user); pre ...

  7. SQL动态语句 拼接SQL 并输入输出值

    --动态语句语法 /****************************************************************************************** ...

  8. shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

    mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作m ...

  9. mysql字符串分割操作

    SELECT '1,2,3,4,5,6,7,8' FROM dual; -- 列转行分割 ),) FROM () a JOIN mysql.help_topic b ); -- 测试 ),) as p ...

随机推荐

  1. Redis、RabbitMQ、Memcached

    知识目录: Memcached Redis RabbitMQ Memcached 回到顶部 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中 ...

  2. Angular2学习(一)

    Angular2的新特性: angular2的核心: 模块.组件.元数据.模板.数据绑定.服务.指令.依赖注入.模块. 组件:层层嵌套,形成组件树.父子组件沟通有输入和输出接口 组件包含JavaScr ...

  3. PIGS

    题解: 考虑建立一个分层图,从s向猪圈连边,容量为初始容量, 猪圈向第一个顾客连边,容量为INF 顾客向汇点连边,容量为购买量 这样一轮就搞完了,考虑下一个顾客 由于上一轮被顾客访问的猪圈都互通了,那 ...

  4. 乐观锁和悲观锁及CAS实现

    乐观锁与悲观锁 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁.传统的关系型数据库里边就用到了很多这种锁机制, ...

  5. Docker 记一次容器内部修改宿主机挂载目录用户权限后宿主机目录变化

    一.需求: 因公司需求,需制作mysql5.7.22 docker基础镜像,每个项目以此镜像启动一个数据库容器,并且每个项目挂载一个宿主机目录到镜像中数据存储下面用于数据持久化保存以便后期迁移至阿里云 ...

  6. 手动部署 kubernetes 1.9 记录

    前言 目前 kubernetes 正式版本已经到1.10版本.因为前面有大佬(漠然)已经采完坑,所以自己也试着部署 kubernetes 1.9 体验下该版本的新特性.对于前面部署的 kubernet ...

  7. 9.Django组件-cookie和session

    HTTP协议的无保存状态,对两次请求没有任何关联.每次请求都是相互独立的. 1.cookie简介 什么是会话跟踪技术我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会 ...

  8. C++ 对Ctrl+Z的解释

    只有当Ctrl+Z单独位于一行的行首时,才表示输入的终止!(即无论何时,都推荐先回车,再Ctrl+Z,再回车结束输入) 当Ctrl+Z位于行中.行末时,输入都不会结束. (Ctrl+Z表示一个字符,其 ...

  9. linux SSH免密码登录远程服务器

    背景:无密码登录,所谓的无密码登录其实是指通过证书认证的方式登录,使用一种‘公私钥’认证的方式来进行ssh登录 在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加 ...

  10. Shell学习之Shell特性(一)

    Shell学习之Shell特性 目录 命令和文件自动补齐功能 命令历史记忆功能 history.上下键.!number.!string.!$.!! 别名功能 alias.unalias cp.~use ...