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

这个该怎么办呢?查来查去,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;

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

MySQL 查询排除指定字段、自定义变量、动态执行SQL的更多相关文章

  1. mysql查询含有指定字段的所有表

    SELECT * FROM information_schema.columns WHERE column_name='userId'; TABLE_SCHEMA字段为db的名称(所属的数据库),字段 ...

  2. 自定义函数动态执行SQL语句

    Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...

  3. Oracle生成查询包含指定字段名对应的所有数据表记录语句

    应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 de ...

  4. mongodb中查询返回指定字段

    mongodb中查询返回指定字段   在写vue项目调用接口获取数据的时候,比如新闻列表页我只需要显示新闻标题和发表时间,点击每条新闻进入详情页的时候才会需要摘要.新闻内容等关于此条新闻的所有字段.  ...

  5. replace() MySQL批量替换指定字段字符串

    mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...

  6. Hibernate高效查询,只查询部分/指定字段

    公司使用 DetachedCriteria detachedCriteria = DetachedCriteria.forClass(PeBulletin.class); detachedCriter ...

  7. mysql函数之七:replace() MySQL批量替换指定字段字符串

    mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...

  8. ORACLE 查询不走索引的原因分析,解决办法通过强制索引或动态执行SQL语句提高查询速度

    (一)索引失效的原因分析: <>或者单独的>,<,(有时会用到,有时不会) 有时间范围查询:oracle 时间条件值范围越大就不走索引 like "%_" ...

  9. 第二百八十七节,MySQL数据库-条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGIN ; THEN ; ELSEIF ...

随机推荐

  1. 【视频开发】非常优秀的CxImage各种格式图像开源工具

    下面介绍应用它进行图像类型转换的方式: 1.从一种图像文件类型转换为另一种文件类型(convert from a format to another)  CxImage   image;    //  ...

  2. (生鲜项目)02. app与model设计

    第一步: 设计app 1. 根据业务需求,设计合适的app板块,这里,我们将拥有goods,trade,user_operation, users四个app 2. 然后去注册app 第二步: 设计us ...

  3. QT_QML_常见问题

    1. qml文件中,如果要添加信号连接,如果与控件x有丁点关联,则将Connections{}最好放到该控件的{}内部,不这样做曾经遇到接受不到信号的奇葩问题. 2. 使用TabView时,在每个Ta ...

  4. [转帖]SpringBoot集成redisson分布式锁

    SpringBoot集成redisson分布式锁 https://www.cnblogs.com/yangzhilong/p/7605807.html 前几天同事刚让增加上这一块东西. 百度查一下 啥 ...

  5. R学习笔记3 数据处理

    1,日期类型 日期类型比较特殊,日期值通常以字符串的形式输入到R中,然后使用as.Date()函数转换为以数值形式存储的日期变量 mydate <- as.Date("2019-01- ...

  6. zookerper入门、核心概念和使用场景

    zookeeper是一个分布式程序的高性能协调服务,提供集中式信息存储服务,数据存储于内存中,类似文件系统的树形结构,高吞吐量和低延时,集群高可靠,基于zookeeper可以实现分布式统一配置中心.分 ...

  7. 转:JVM的符号引用和直接引用

    在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用. 1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可 ...

  8. 大数据相关技术原理资料整理(hdfs, spark, hbase, kafka, zookeeper, redis, hive, flink, k8s, OpenTSDB, InfluxDB, yarn)

    hdfs: hdfs官方文档 深入理解HDFS的架构和原理 https://blog.csdn.net/kezhong_wxl/article/details/76573901 HDFS原理解析(总体 ...

  9. js中for循环点击事件(闭包)

    <!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...

  10. 配置CTS+

    Please let me know if below SAP KBA could help you: 1739340 - ESR/ID Export Using CTS+ option is dis ...