我是靠谱客的博主 诚心小懒猪,这篇文章主要介绍MySQL 解决参数名与数据表字段名重复问题,现在分享给大家,希望可以做个参考。

MySQL 定义预处理sql

通过预处理命令执行解决参数与表字段重复冲突的问题

案例:定义传入参数名age,与数据表中age名称重复
也可以使用 表名点字段名来解决(ld_tmp_cust.age = age)

CREATE
PROCEDURE `execute_sql`(IN sqltext text)
BEGIN
set @str = sqltext;
PREPARE str from @str;
--- 定义预处理
EXECUTE str; -- 执行预处理
DEALLOCATE PREPARE str; -- 释放预处理
commit;
END;
DROP TABLE IF EXISTS ld_tmp_cust ;
CREATE TABLE ld_tmp_cust
(
ID Int
, name VARCHAR(100)
, age INT
,brith VARCHAR(100)
);
INSERT INTO ld_tmP_cust VALUES ('001','吕布',23,'1999-10-01');
INSERT INTO ld_tmP_cust VALUES ('002','赵云',25,'1999-12-01');
INSERT INTO ld_tmP_cust VALUES ('003','刘备',26,'1999-07-01');
drop procedure p12 ;
CREATE PROCEDURE p12( in age int )
BEGIN
select
concat('SELECT name FROM ld_tmp_cust ','where
age = ',age,'
;')
into @aa
;
call execute_sql ( @aa );
end;
call p12( 23) ;


drop procedure p11 ;
CREATE PROCEDURE p11( in age int )
BEGIN
select
concat('SELECT name FROM ld_tmp_cust ','where
age = ',age,'
;')
into @aa
;
PREPARE sqla
from @aa ;
-- 定义预处理
execute sqla ;
-- 执行预处理
DEALLOCATE PREPARE sqla;
-- 释放预处理缓存
end;
call p11( 26) ;

希望小伙伴们帮忙点个赞
待修定补充……

最后

以上就是诚心小懒猪最近收集整理的关于MySQL 解决参数名与数据表字段名重复问题的全部内容,更多相关MySQL内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(145)

评论列表共有 0 条评论

立即
投稿
返回
顶部