• MySQL 查询排除指定字段、自定义变量、动态执行SQL


    今天在项目中,要查询一个表。这个表中有几十个字段。但是要把其中的一个特殊处理。

    这个该怎么办呢?查来查去,SQL 中没有排除某一些字段的语句,只能单独写一些语句来处理;

    基本思路:对于MySQL数据库有 information_schema 库中存着数据该的一些基础信息。

    1、从这个库中的 COLUMNS (记录各个表的所有字段)表中取出指定数据表的所有字段,再排除不需要的字段,并存在变量中。

    2、拼接SQL语句,并把变量带入(这里拼接完成后需要再赋到另一个变量)。

    3、执行拼接的SQL语句。

    --1、取出指定数据表的所有字段,再排除不需要的字段,并存在变量中(ztjg_gd:你要查询的表,spatital_data:你要排除的字段)
    SET
    @str := ( SELECT GROUP_CONCAT( s.column_name ) FROM information_schema.`COLUMNS` s WHERE s.table_name = 'ztjg_gd' AND s.column_name <> 'spatial_data' );
    --2、拼接SQL语句,并把变量带入
    SET @v_sql = concat( 'select ', @str, ',ASTEXT(zd.spatial_data) AS spatial_data from ztjg_gd zd WHERE zd.id = 3 AND zd.is_deleted = 0' ); SET @e_sql = @v_sql; --这一句必需,不然下面查询就有问题

    --3、执行拼接的SQL语句 PREPARE stmt FROM @e_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;

    到这里,整个的查询就完成了。

  • 相关阅读:
    php apc 安装
    apaache php 日记设计
    memcache windows64 位安装
    JavaScript的作用域与闭包
    怎样写一个简单的操作系统?
    php 关于锁的一些看法
    Windows版本Apache+php的Xhprof应用__[2]
    Windows版本Apache+php的Xhprof应用
    使用TortoiseGit对Git版本进行分支操作
    机器学习数据不均衡问题
  • 原文地址:https://www.cnblogs.com/zhurong/p/10483169.html
Copyright © 2020-2023  润新知