精华内容
下载资源
问答
  • SQL Server 根据spid查询执行的sql语句

    千次阅读 2019-05-08 12:30:48
    根据spid来查询执行的SQL语句 select er.session_id,CAST(csql.text AS varchar(255)) AS CallingSQL from master.sys.dm_exec_requests er WITH (NOLOCK) CROSS APPLY MASTER.sys.fn_get_sql (er.sql_...

    sp_who2查询出的spid
    根据spid来查询执行的SQL语句

    select er.session_id,CAST(csql.text AS varchar(255)) AS CallingSQL
    from master.sys.dm_exec_requests er
    WITH (NOLOCK)
           CROSS APPLY MASTER.sys.fn_get_sql (er.sql_handle) csql
    where er.session_id =@spid
    
    展开全文
  • 当字段比较多时,用传统insert into 表名(字段1,字段2,字段3.......所以用数组生成 insert语句就可以避免这样问题了, 特别是增删字段时,很方便简单。$d['title']='标题';$d['classid']=1;$d['create_time'...

    当字段比较多时,用传统的insert into 表名(字段1,字段2,字段3....字段N)values(值1,值2,值3....值N) 这样的写法,很容易会出现 字段数量不匹配的问题,还有各种语法的错误.

    所以用数组生成 insert语句就可以避免这样的问题了, 特别是增删字段时,很方便简单。$d['title'] = '标题';

    $d['classid'] = 1;

    $d['create_time'] = time();

    $sql = create_sql('data',$d);

    //生成sql语句

    function create_sql($table,$arr)

    {

    foreach ($arr as $k => $v)

    {

    $f[] = $k;

    $val[] = "'".$v."'";

    }

    $f = implode(',',$f);

    $val = implode(',',$val);

    return "insert into ".$table."(".$f.")values(".$val.")";

    }

    这样最后就可以生成$sql变量的值    insert into data(title,classid,create_time)values('标题',1,当前时间戳)

    增减字段,只需要更改$d就可以了。

    bb4924913fd68c4791cd5905f5fff336.png

    展开全文
  • 根据列名查询表名的sql语句

    千次阅读 2016-10-19 15:25:34
    同事给,来源不祥,有需要拿走~ SELECT sb.name FROM syscolumns s JOIN sysobjects sb ON s.id=sb.id WHERE s.name='你字段名'

    同事给的,来源不祥,有需要的拿走~

    SELECT sb.name 
    FROM syscolumns s JOIN sysobjects sb ON s.id=sb.id
    WHERE  s.name='你的字段名'


    展开全文
  • 动态SQL就是指根据不同的条件生成不同的SQL语句 1.2 环境搭建 1.数据库表 -- auto-generated definition create table blog ( id varchar(50) not null comment '博客id', title varchar(100) not nul...

    1.动态SQL

    1.1 什么是动态SQL

    动态SQL就是指根据不同的条件生成不同的SQL语句

    1.2 环境搭建

    1.数据库表

    -- auto-generated definition
    create table blog
    (
      id          varchar(50)  not null
      comment '博客id',
      title       varchar(100) not null
      comment '博客标题',
      author      varchar(30)  not null
      comment '博客作者',
      create_time datetime     not null
      comment '创建时间',
      views       int(30)      not null
      comment '浏览量'
    );
    

    2.导包

    <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.8</version>
            </dependency>
        </dependencies>
    
    

    3.编写核心配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
        <!--引入外部配置文件-->
        <properties resource="db.properties"/>
        <settings>
            <setting name="logImpl" value="STDOUT_LOGGING"/>
            <!--开启自动驼峰规则-->
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
        <typeAliases>
            <package name="edu/xalead/pojo"/>
        </typeAliases>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <mappers>
            <mapper class="edu.xalead.dao.BlogMapper"/>
        </mappers>
    </configuration>
    

    4. 编写实体类

    package edu.xalead.pojo;
    
    import lombok.Data;
    
    import java.util.Date;
    
    @Data
    public class Blog {
        private String id;
        private  String title;
        private String author;
        private Date createTime;//属性名与字段名不一致(从_到驼峰)
        private int views;
    }
    

    5.编写实体类对应Mapper接口和Mapper.xml

    6.添加一个工具类

    • 在com.it.utils中加入IDUtils类,作为可以生成随机id的类,代码:

      package edu.xalead.utils;
      import org.junit.jupiter.api.Test;
      import java.util.UUID;
      public class IDUtils {
          public static String getID(){
              return UUID.randomUUID().toString().replaceAll("-","...");
          }
          @Test
          public void test(){
              System.out.println(IDUtils.getID());
          }
      }
      
    • mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
      代码:

    12.3开始改造

    1.IF

    接口代码:

    //查询博客
    List<Blog> queryBlogIf(Map map);
    
    • 接口.xml代码:(在这里1=1为了sql正常后面会使用where标签)

      <select id="queryBlogIf" parameterType="map" resultType="blog">
              select * from mybatis_test.blog where 1=1
                  <if test="title !=null">
                      and title = #{title}
                  </if>
                  <if test="author != null">
                      and author = #{author}
                  </if>
          </select>
      
    • 测试代码:

       @Test
          public void test1(){
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
              Map map = new HashMap();
      //        map.put("title","vue");
              map.put("author","admin");
              List<Blog> blogs = mapper.queryBlogIf(map);
              for (Blog blog : blogs) {
                  System.out.println(blog);
              }
              sqlSession.close();
          }
      

    2.trim(where , set)

    where :保证sql可以正常输出

    <select id="queryBlogIf" parameterType="map" resultType="blog">
        select * from mybatis_test.blog
        <where>
            <if test="title !=null">
                and title = #{title}
            </if>
            <if test="author != null">
                and author = #{author}
            </if>
        </where>
    </select>
    

    set: update 中

    <update id="updateBlog" parameterType="map">
        update mybatis_test.blog
        <set>
            <if test="title != null">
                title = #{title},
            </if>
            <if test="author != null">
                author = #{author}
            </if>
        </set>
        where id = #{id};
    </update>
    

    trim :可以定制where,set的功能

    3.choose(when,otherwise)

    相当于switch-case

     <select id="queryBlogChoose" parameterType="map" resultType="blog">
            select * from mybatis_test.blog
            <where>
                <choose>
                    <when test="title !=null">
                        title = #{title}
                    </when>
                    <when test="author !=null">
                        and author = #{author}
                    </when>
                    <otherwise>
                        and views = #{views}
                    </otherwise>
                </choose>
            </where>
        </select>
    

    总结:所谓的动态SQL,本质还是SQL语句,只是我们可以在SQL层面,去执行一个逻辑代码

    1.4 SQL片段(把sql提取出来)

    有时候,我们可能会将一些工共的部分抽取出来,方便复用

    • 接口.xml代码:

       <sql id="if-title-author">
           <!--提取sql片段-->
              <if test="title !=null">
                  and title = #{title}
              </if>
              <if test="author != null">
                  and author = #{author}
              </if>
          </sql>
          
          <select id="queryBlogIf" parameterType="map" resultType="blog">
              select * from mybatis_test.blog
              <where>
                  <!--引入sql片段-->
                  <include refid="if-title-author"/>
              </where>
          </select>
      

    注意事项:

    • 最好基于单表定义sql片段
    • 不要存在where标签

    1.5 Foreach

    处理大概这类问题

    select * from user where 1=1 and (id=0 or id=2 or id=3)
    

    查询id集合对应blog

    接口.xml代码:

    <!--查询where 1=1 and (id=0 or id=2 or id=3)用foreach-->
    <!--类似集合的foreach循环。foreach标签内容分别为:给定一个集合的名字,将取出的内容给定一个名字,开始是的样子(,结尾的样子),分开分隔是or。id和#{id}对应-->
     <select id="queryBlogForeach" parameterType="map" resultType="blog">
            select * from mybatis_test.blog
            <where>
                <foreach collection="ids" item="id" open="(" close=")" separator="or">
                    id = #{id}
                </foreach>
            </where>
        </select>
    
    • 测试代码:

      @Test
          public void test4(){
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              BlogMapper mapper = sqlSession.getMapper(BlogMapper.class);
              Map map = new HashMap();
              ArrayList<Integer> ids = new ArrayList<Integer>();
              ids.add(1);
              ids.add(2);
              map.put("ids",ids);
              List<Blog> blogs = mapper.queryBlogForeach(map);
              for (Blog blog : blogs) {
                  System.out.println(blog);
              }
              sqlSession.close();
          }
      

    动态Sql就是在拼接sql语句,我们只要保证sql的正确性,按照Sql的格式,去排列组合就可以了

    欢迎访问我的个人博客:http://www.ayjup.cn

    展开全文
  • 这里写自定义目录标题动态sql语句动态游标更新语句值来自查询结果 动态sql语句 CREATE DEFINER=`root`@`%` PROCEDURE `NewTest`( IN `IN_ID` varchar(200) ) BEGIN declare r_sql varchar(2000); #############...
  • 例子: 打开三个查询分析器 A、B、C 创建一个测试用表 testDia Create Table testDia(ID int); 在A执行以下语句: Begin tran Insert Into testDia Values(1); 在B执行以下语句: Select * from testDia 当前情况...
  • MySQL查询sql语句

    2020-07-07 13:52:42
    两条sql语句组合查询 功能:下面代码实现功能为 查询is_deleted为1id最大一条记录 根据id,取该记录后面所有数据 sql1 = ''' select max(id) from bilibili_move_house_total_ups_distinct where is_...
  • 近期项目开发中,用到YII2框架,遇到大家可能都会遇到的时间范围查询的问题,在这里给大家分享一下; 表名test_1 字段名:id,uese_id,status(状态),name,create_time(创建时间).......这里主要以时间范围查询为主...
  • /*根据SKU,查询订单信息*/ SELECT order_table.increment_id, item_table.created_at,item_table.sku, order_table.customer_email, CONCAT_WS('',order_table.customer_firstname,order_table.customer_...
  • Mysql数据库中根据某个或多个字段查询重复数据的sql语句sql 查出一张表中重复的所有记录数据 sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where ...
  • SELECT id, s_subbran_name, n_longitude, n_latitude, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( ...
  • sql语句根据月份分组进行查询

    千次阅读 2020-08-19 10:33:26
    1.sql语句根据月份分组进行查询 (1)数据库格式 CREATE TABLE `project_info` ( `project_id` VARCHAR ( 64 ) NOT NULL COMMENT '项目信息表id', `project_name` VARCHAR ( 255 ) NOT NULL COMMENT '项目名称'...
  • SQL语句的各种连接查询

    万次阅读 2018-04-10 09:39:50
    pro_dish 菜品表:pro_dish_standard 菜品规格表:SQL语句的常用三种连接查询:1、 内连接(inner join 或 join)内连接是等值连接,它使用“=、&amp;gt;、”等运算符根据每个表共有值匹配两个表中行...
  • 【转载】Sqlserver的SQL语句实现分页查询 Sqlserver的SQL语句实现分页查询 在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句...
  • 在应用程序开发中,如果数据库中数据量过于庞大,则需要针对查询数据做分页处理,取出对应分页中数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id情况,可以根据Id的大小...
  • ID FatherID string1 string2 date1 int1 1 NULL NULL fff NULL NULL 2 NULL ffsd NULL NULL NULL 3 1 NULL thrth NULL NULL 4 NULL 单纯 NULL NULL NULL 5 2 NULL 傻 NULL NULL 6 4 专业 NULL NULL NULL 字段string...
  • 常用复杂查询SQL语句

    2018-11-28 13:20:45
    1.oracle查询树形结构,比如有时候菜单需要点击节点查询所有子节点孙节点。 不用在结构上查询,直接使用sql...这条sql语句作用是根据节点id查询所有子节点以及当前节点数据。 2.mybatis里面写模糊查询 ...
  • ">id(friend_id) </span><span>分组查询出和每个好友私信数目</span><span style="font-family: Helvetica;">,</span><span>以及和好友最近一条私信记录</span><span style="font-family: Helvetica;">.</span>...
  • mysql 查询sql语句

    2009-10-16 15:10:14
    1. User表用于记录用户相关信息, Photo表用于记录用户照片信息, 两个表定义如下: CREATE TABLE User( --用户信息表 ...由于人员年龄有可能相等, 请写出SQL语句, 用于查询age最大人员中, id最小一个记录
  • 1.有两张表,其中的id信息都相同 2.根据账户密码(只在其中一张表中有),找到两张表中具有相同Id的所有信息 该怎么写啊!
  • 我首先想到根据freeze_status不同状态分组查询,分别得到两种状态写冻结积分(integral_frozen)总和,然后再通过union 连接两个不同的查询语句,sql语句如下: select user_id, SUM(integral_frozen),...
  • mysql使用sql语句根据时间段查询数据

    千次阅读 2019-06-25 10:01:01
    1.sql语句: SELECT 字段 from 表名 where 时间字段 BETWEEN ‘2019-05-22’ AND ‘2019-06-21’ 注:此种方法查到是5-22到6-20之间数据,不包括6-21当天数据; 2.在mybatis中mapper文件定义查询: <select ...
  • 现在我想根据用户表里“DetectID”对应项目表里id”进行关联查询其项目名称,“DetectID”里有几个数据,就查出项目表里几个名称。这条SQL语句该怎么写,我老是查询到第一条数据就结束了。
  • sql语句怎么写?根据 User_id 查询所对应ROLE_NAME[img=https://img-bbs.csdn.net/upload/201512/28/1451287578_554139.png][/img]第一张表表名a,第二张表名b
  • 根据SQL语句查询结果集,将其封装为json 例如: 1.select id,username,password,sex from user where id=11 {id:1,username:'jibs',password:'ssdfsdfsfwe',sex:'男'} /**  * 通过sql查询结果封装成json  * ...
  • 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中...
  • 有这样一个需求,如下表所示,...如图所示,要根据下表数据查询上表值。teacher_Id为169时对应两组数据。 这样的查询又不能group分组,也不能单独查询dept_id in (3,20) and course_id in (100002,100003) 查询

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,587
精华内容 634
关键字:

根据id查询的sql语句