1.实现目标,现在对deal_runnning表进行按年月分表,需要动态拼接表名查询

2.需要执行此sql .表名要动态拼接,目标sql如下,使用concat连接表名无效.

SELECT
id,
bazaar_id,
(SELECT fmName FROM fm_boooth_shop_user WHERE fmId=bazaar_id) AS bazaar_name,
merchant_id,
(SELECT shop_name FROM shop WHERE id=merchant_id) AS merchant_name,
order_num,
deal_type,
order_type,
order_money,
pay_type,
pay_account,
create_time,
create_user,
(SELECT nick_name FROM sys_user WHERE user_id=create_user) AS user_name,
delete_status
FROM  table
WHERE create_time > DATE_SUB(NOW(), INTERVAL 1 MINUTE); 

3.解决办法,使用mysql的预编译动态sql处理

SET @baipddl =CONCAT('deal_runnning',DATE_FORMAT(NOW(),'%Y%m')); #1.先把表名拼接出来
SET @abc= CONCAT('SELECT id,bazaar_id,
(SELECT fmName FROM fm_boooth_shop_user WHERE fmId=bazaar_id) AS bazaar_name,
merchant_id,
(SELECT shop_name FROM shop WHERE id=merchant_id) AS merchant_name,
order_num,deal_type,order_type,order_money,pay_type,pay_account,create_time,create_user,
(SELECT nick_name FROM sys_user WHERE user_id=create_user) AS user_name,
delete_status FROM ', @baipddl); #2.再把查询语句前半段拼接起来
SET @bcd = CONCAT(@abc,' WHERE create_time > DATE_SUB(NOW(), INTERVAL 1 MINUTE)'); #3.再把查询条件拼接起来
PREPARE stmt FROM @bcd; #4.预编译
EXECUTE stmt;  #5.执行
DEALLOCATE PREPARE stmt; #6.释放

Mysql预编译动态拼接表名查询相关推荐

  1. mysql预编译语句拼接查询_SQL语句预编译(查询)

    SQL语句预编译 SQL语句预编译能预防SQL注入提高安全性,是因为SQL语句在程序运行前已经进行了预编译,在程序运行时第一次操作数据库之前,SQL语句已经被数据库分析,编译和优化,对应的执行计划也会 ...

  2. springboot动态传入表名查询

    在开发的时候可能会需要以实际命名的日志表,然后按照日期来查询表的内容 我们只需要在sql语句中将表的名字作为一个参数传进去即可 mapper文件 <?xml version="1.0& ...

  3. 【MyBatis】myBatis动态传入表名进行查询

    由于分表就涉及到了有相近查询语句只是表名不同的情况,刚开始使用了 <select id="selectById" resultMap="BaseResultMap& ...

  4. mysql 变量作表名查询_使用MySQL函数变量作为表名查询

    我需要有一个表中增加一定的ID(如AUTO_INCREMENT)函数使用MySQL函数变量作为表名查询 我有水木清华这样 DELIMITER $$ DROP FUNCTION IF EXISTS `G ...

  5. 【MyBatis】myBatis动态传入表名、字段名(列名)进行查询

    最近在工作上遇到一个问题,由于数据量过大所以进行了分表保存用户数据,项目dao层使用了MyBatis框架,并且用xml保存维护sql语句,方便后期DBA介入进行查询语句的优化.由于分表就涉及到了有相近 ...

  6. Mybatis-plus实现动态表名查询

    数据库表结构如图所示,现在需要对表进行动态查询,根据自定义的算法找到我们需要查询的表名序号. MybatisPlusConfig配置: @Configuration public class Myba ...

  7. 六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性

    文章目录 六.MyBatis特殊的SQL 6.1 模糊查询 6.2 动态设置表名 6.3 校验名称唯一性 本人其他相关文章链接 六.MyBatis特殊的SQL 6.1 模糊查询 方式1:select ...

  8. MySQL存储过程---动态的表名

    drop procedure if exists pr_multi; create PROCEDURE pr_multi() begin declare areanum varchar(32); -- ...

  9. MyBatis构建sql时动态传入表名以及字段名

    http://wendy-wxie.iteye.com/blog/1605193 用了mybatis很长一段时间了,但是感觉用的都是比较基本的功能,很多mybatis相对ibatis的新功能都没怎么用 ...

最新文章

  1. 把我坑惨的一个update语句!
  2. 为了杀蚊子,这位博士用树莓派DIY了一把激光枪!网友:伤到人怎么办?
  3. 深入分析 Java I/O 的工作机制--转载
  4. MySQL中Myisam、InnoDB碎片优化
  5. 设计模式(二)之装饰器模式
  6. 针对Java中的XSD验证XML
  7. linux定位哪个进程出发重启,定位Linux下定位进程被谁KILL
  8. SqlServer时间戳与普通格式的转换
  9. Linux数码管和点阵程序,随笔:python turtle绘制八段数码管和共阳极8x8led点阵
  10. malloc在函数内分配内存问题
  11. testlink php nginx,linux环境部署testlink步骤说明
  12. elasticsearch 之index API
  13. ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别
  14. java 加权平均_加权平均值 - 不羁之后的个人空间 - OSCHINA - 中文开源技术交流社区...
  15. 实验1 蓝桥ROS1机器人入门 适用kinetic/melodic/noetic
  16. 微生物所东秀珠组与北大深圳研究生院余珂组联合招聘启事
  17. 剑魂之刃登录显示服务器异常,剑魂之刃新手问题汇总
  18. Android中读写权限申请
  19. 计算机视觉算法岗 面试经验 (转载)
  20. 视频加背景图片的方法,多个视频设置为相同的背景图

热门文章

  1. 计算机软件水平高级考试内容,全国计算机软件专业资格和水平考试高级程序员级试题及答案.docx...
  2. 对于通讯部分框架设计的几点思索
  3. java毕业设计——基于java+Socket+sqlserver的办公自动化系统设计与实现(毕业论文+程序源码)——办公自动化系统
  4. matlab 图像隐藏,将Matlab下隐藏的图形保存为相同大小的图像
  5. cc1101 学习1
  6. 雷军兼任小米汽车业务CEO、徐直军任华为轮值董事长 | 高管变动2021年3月29日-4月4日...
  7. html5 jquery 鼠标拖动例子,jquery实现鼠标拖动实现DIV排序示例代码
  8. 2019 春季实习生招聘之项目介绍
  9. java新手案例_java初学者都要掌握的案例
  10. 第四周实验报告 任务1