zoukankan      html  css  js  c++  java
  • sql常识性误解

      今天在公司一个项目,遇到一个问题,最后解决下来竟然发现自己对sql竟然存在一个常识性的误解

           

              表数据

                     

      需求如下 查找 name中的数据被参数 'adsb' 包含的的列

    个人原先的误区一直在于一个认识,

      认为在sql查询中where 条件后只有 列名=参数的情况

    所以 

    sql语句一直想的结构是

            

    SELECT  [userGid]
          ,[detail]
          ,[Type]
          ,[source]
          ,[createTime]
          ,[name]
      FROM [dbo].[showy] where name like '%adsb%' 

    即where后列名 like参数的情况

    因为需求是要参数包含列名,所以该语句根本行不通

    而正确语句为

    SELECT  [userGid]
          ,[detail]
          ,[Type]
          ,[source]
          ,[createTime]
          ,[name]
      FROM [dbo].[showy] where 'adsb' like '%' +name+'%' 

    即where后参数 like 列名的情况

    误区遍在个人一直认为where后的条件只能是列名在前边然后与参数做判断

    其实 sql中 对列是否出线的标准是where后的整体条件是否为true

    至于条件的写的方式并无要求

  • 相关阅读:
    Java 8 ThreadLocal 源码解析
    RabbitMQ 消息中间件
    MySQL 索引与查询优化
    MySQL EXPLAIN 命令: 查看查询执行计划
    迎来送往,开启新篇章
    mockito的用法
    推荐一个计算机的科普视频
    Golang查缺补漏(一)
    2019定个小目标
    golang 中的指针
  • 原文地址:https://www.cnblogs.com/zhang888/p/sqlerror.html
Copyright © 2011-2022 走看看