mysql function动态执行不同sql语句

create procedure cps()
begin
 declare table_user  varchar(200) default ‘user‘;
 set strSql = concat(‘select * from ‘,table_user);
 prepare a from strSql;
 execute a;
end;

这个过程中会出现错误。

如何使用sql执行字符串?

需要使用prepare  预编译sql

prepare a from ‘select * from food‘;
 execute a; 

这样是可以的

如果那条语句是可变的呢?那么需要变量保存部分信息,变量有什么要求吗?

所以,如果要使用SESSION级别变量的话,变量前一定要加@符号

当然,使用prepare也可以这样使用参数:

我这个是找问题的时候找的资料的一个集合版,参考链接:

http://bbs.csdn.net/topics/350158591

时间: 2024-12-09 17:05:18

mysql function动态执行不同sql语句的相关文章

两种方式:mysql查看正在执行的sql语句

mysql查看正在执行的sql语句 2015年08月21日 17:32:59 阅读数:15398 有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; -- show processlist; 或者: -- select * from information_schema.`PROCESSLIST` where info is not null; 1

【转】mysql如何跟踪执行的sql语句

转自http://blog.csdn.net/testcs_dn/article/details/18791815 在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: windows环境下的配置方法: 我使用的版本:Version: 5.0.37-community-nt-log (MySQL Community Edition (GPL)) 找到my.in

监控mysql执行的sql语句

linux平台 为了做好配合开发做性能和功能测试,方便监控正在执行的sql语句,可以在/etc/mysqld中添加如下: log =/usr/local/mysql/var21005/mysql.log 就可以使用: tail -f mysql.log 来监控了  www.xxx.com 如果需要监控慢查询可以添加如下内容: log-slow-queries = /usr/local/mysql/var21005/slowquery.log long_query_time = 1 windows

MySql使用show processlist查看正在执行的Sql语句

今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命令查看了当前正在执行的sql语句,从而定位到了对应的程序,发现代码中有一个死循环在不停的查询导致cpu占用99%,原因找到了问题就好解决了. 这里简单的记录一下processlist的用法: processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这

mysql存储过程动态执行SQL

CREATE PROCEDURE feeMonth(in fmark varchar(200),in fuser char(32),in ftime BIGINT,in fmonth char(6)) BEGIN #定义SQL变量 declare create_sql varchar(100); declare sel_sql varchar(100); declare del_sql varchar(100); declare fmon varchar(100); #定义表名变量 declar

查看Mysql实时执行的Sql语句

最近给客户开发了基于Asp.Net mvc5 +Mysql+EF的项目,但是在EF里无法看到Mysql执行的语句 之前也找到一些监控Mysql的软件但一直没有用起来,现在又遇到了问题即在EF里Mysal的查询没有结果而在Mysql里没有问题 因为不知道EF生成的Mysql语句所以不知道是不是Sql的问题于是决定必须解决此问题 通过半天时间的努力解决了此问题,其实很简单即开启Mysql的Log功能,那么Mysql的执行语句都会写到Log文件里 然后通过BareTail这个专门查看Log文件的工具即

如何在mysql查找效率慢的SQL语句

如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这

在MySQL命令行中使用SQL语句的规则

规则1: SQL语句必须以分号(;)或者(\G)结束 分号(;)是SQL语句的结束标志.如果遗忘了分号,而直接按下回车键时,在MySQL客户端上将显示如下 mySQL> SELECT * FROM customer -> 因为没有以分号结束,客户端认为SQL语句并没有结束,显示[->]等待用户继续输入命令,直到以分号结束.有些数据库中,支持省略最后的分号的情况. 规则2: 保留关键字不区分大小写 保留关键字是SQL中事先定义好的关键字,如上面检索语句中的SELECT.FROM等就属于保留

如何查找MySQL中查询慢的SQL语句

本文导读:如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_