ASP进行数据库查询时SQL语句的几种特殊用法

        在使用ASP语言连接ACCESS数据库进行数据查询时,会用到相应的SQL语句,比如:
         select * from 表名 where 字段名 比较符(=、<、>、like等)  变量(或常量)
        我们来进行实例分析,比如要求在table中查询title字段中包含“city”的条目,我们可以写成:
         select * from table where title like '%city%'
        但其实,为了实现上面的查询要求,还有另外一种SQL语句的写法:
        select * from table where instr(title ,'city')>0
        本人才疏学浅,这第二种写法对我来说,是最近刚刚学习到的,之前几年都只知道第一种写法。那么,为什么平白无故,我突然学到了第二种写法呢?这是因为在一个网页的程序编写时,需要将SQL语句作为参数在URL中传递,而当SQL语句中包含"%"时,传递到URL后,再从URL获取这个SQL语句,就会出现问题,导致新的查询无法实现,于是便有了尝试用另外一种写法代替  select * from table where title like '%city%' 这一写法的思路,于是乎上网搜索了一下,果然还真有等价的其它写法!
        下面想说的SQL语句特殊用法是当select * from table where 后面有多个查询条件时,并且这些条件之间既有 and 关系,也有 or 的关系,而此时,根据 and 优先于or的原则,程序会先查询符合 and 的条件,然后再执行符合 or的条件,但是,我们想要的确实,先执行所有的 or ,然后再将 or 的结果 与其它条件进行 and 查询。于是便有了将所有进行or的条件外面加一个括弧,让括弧里面先执行or ,然后将括弧的执行结果与其它条件进行 and 查询。
        呃,说多了都是废话!…… 来看看实例吧:
        我们想在table表中查询name字段中包含“赵”,并且city字段既不等于北京,也不等于天津的记录,正确的写法如下:
        select * from table where name like ‘%赵%’ and ( city <> '北京' or  city <> '天津'  )
        试想,如果没有了括弧,这个语句的查询结果就大不一样了!!!
        还是那句话, 本人才疏学浅,之前并不知道可以再SQL语句中通过加括弧的形式,对多个查询条件进行组合。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值