请问如何执行mysql动态SQL 现在我有一局SQL,我想根据传入的参数加入条件,然后动态的执行这个sql,请问语法是怎么样的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在百度或者GOOGLE里面搜索关键字 “mysql 预处理语句” 但是我得先,根据传入的参数,拼接完sql然后在执行,拼接的语法直接用+会出错 现在我有各一条sql,如select * from <table>,根据传入参数,拼接sql,参数1不为空,直接sql+参数对应条件,然后执行这条sql请问语法是怎么样的? 我想已经可以了,但是为什么这样连接字符有问题set f_tmp = "select * from table ..."& +".......";编译不报错,运行报错,我现在把很长的一段sql全部写做一行,然后判断输入参数,在set f_tmp = concat(f_tmp,' and a.user_id = ', fi_user_id);最后 set @f_sql = f_tmp; PREPARE stmt1 FROM @f_sql; EXECUTE stmt1;字符连接的语法是如何的? 本帖最后由 yueliangdao0608 于 2008-11-14 09:20:57 编辑 连接字符串用CONCAT,在用prepare s1 from @x; execute s1;执行 谢谢大家了,这个问题搞明白了,在多问一下,我现在传入的有中文参数,我已经在传入参数里加入了CHARACTER SET utf8,而且我在调试时,传入的也是中文,但在拼接sql那报错,error code [1366]; Incorrect string value: '\xE6\xB5\xB7\xE5\x8D\x97...' for column 'f_tmp',应该就出在拼接那,请问,拼接还可以在转utf8吗? 呵,不好意思,忘记设置sql的变量为utf8了,可以了。 trigger可以自动更新自己table中的数据吗? 从一个表向另一个表更新最新数据 mysql优化 问一个MySQL数据库转成Oracle的问题 请问mysql 5.0数据库表删除之前,是否需要删除表的约束索引,外键等信息?直接drop表是否可以? 请问sql不能同时设置两个字段的值吗? 求个SQL C#连接Mysql读取数据的问题? 谁知道"msqld已死,subsys被锁"该如何是好 ? MySQL性能调优 32GB内存+64核 sql 语句如何同时删除多行 哪里可以下载开源的最新版MySql?
请问语法是怎么样的?
set f_tmp = "select * from table ..."&
+".......";
编译不报错,运行报错,我现在把很长的一段sql全部写做一行,然后判断输入参数,在
set f_tmp = concat(f_tmp,' and a.user_id = ', fi_user_id);
最后
set @f_sql = f_tmp; PREPARE stmt1 FROM @f_sql;
EXECUTE stmt1;
字符连接的语法是如何的?
prepare s1 from @x;
execute s1;
执行