• 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

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

  • 相关阅读:
    HZOJ 太阳神
    HZOJ Silhouette
    HZOJ Dash Speed
    HZOJ 巨神兵
    值得纪念的cspsAFO总结
    11月FLAG
    模板易错总结
    树 总结
    DP总结(优化等)
    代码低级错误总结
  • 原文地址:https://www.cnblogs.com/zhang888/p/sqlerror.html
Copyright © 2020-2023  润新知