若依框架学习 代码生成器
若依中查询表名的sql语句
<select id="selectDbTableList" parameterType="GenTable" resultMap="GenTableResult"> select table_name, table_comment, create_time, update_time from information_schema.tables where table_schema = (select database()) AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%' AND table_name NOT IN (select table_name from gen_table) <if test="tableName != null and tableName != ''"> AND lower(table_name) like lower(concat('%', #{tableName}, '%')) </if> <if test="tableComment != null and tableComment != ''"> AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) </if> <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> AND date_format(create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') </if> <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> AND date_format(create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') </if> order by create_time desc </select>
该sql语句能够查询到符合条件的数据库名,然后按照创建时间降序排列,最终返回这些表的表名、表注释、创建时间和更新时间等信息。
获取到表名后可以通过 SHOW COLUMNS FROM your_table_name; 获取表的所有列信息(猜测) 不过好像框架里没有类似语句,也可能是没找到
关于该语句的详细解释
- SELECT table_name, table_comment, create_time, update_time:选择要查询的字段,即表名、表注释、创建时间和更新时间。
- FROM information_schema.tables:指定查询的表为 information_schema.tables,该表包含了数据库中所有表的元数据信息。
- WHERE table_schema = (SELECT database()):限定查询当前数据库中的表。
- AND table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%':排除表名以 "qrtz" 或 "gen" 开头的表。
- AND table_name NOT IN (SELECT table_name FROM gen_table):排除已经存在于 gen_table 表中的表名。
- AND LOWER(table_name) LIKE LOWER('%user%'):根据条件筛选表名,这里是模糊查询包含 "user" 字符的表名,不区分大小写。
- AND DATE_FORMAT(create_time, '%Y-%m-%d') >= '2022-01-01':限定查询结果中创建时间在 2022 年 1 月 1 日及之后的表。
- AND DATE_FORMAT(create_time, '%Y-%m-%d') <= '2022-12-31':限定查询结果中创建时间在 2022 年 12 月 31 日及之前的表。
- ORDER BY create_time DESC:将查询结果按照创建时间倒序(降序)排序,以便最新创建的表显示在前面。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!