`

反思SQL的or连接词

    博客分类:
  • SQL
SQL 
阅读更多
下午在调试程序的时候一个诡异的现象,删除单据后被删除的单据依然显示在列表中,查看后台数据库,删除标记已经被置为Y。心里一阵纳闷,于是打断点跟踪,将程序加载时拼出来的语句放在SQL里执行了一把,结果还是把已经删除的记录给查出来了;然后就对着那个查询语句做修改,改来改去就是改不正确,明明在查询条件中对删除的字段做了过滤,但是还是能查出来。后来再将过滤条件一个一个添加,然后查询的土方法中终于发现了猫腻,嘿嘿  犯错误很低级 就是在过滤条件中添加了or关键字,但是没有加括号...

犯错的语句:
select *  from aaa 
where Delete!='Y'  
and Date between '2010-11-17 00:00:00' and '2010-12-17 23:59:59' 
and To in (select Stock from StockCtrl where User='106') 
or From in (select Stock from StockCtrl where User='106')  
order by Date desc



修改后的语句
select *  from aaa 
where Delete!='Y'  
and Date between '2010-11-17 00:00:00' and '2010-12-17 23:59:59' 
and (To in (select Stock from StockCtrl where User='106') 
or From in (select Stock from StockCtrl where User='106')) 
order by Date desc


其实要是把语句简化为 select * from aaa where delete = 'N' or 1=1 我想应该很快能定位这个错误
分享到:
评论

相关推荐

    SqlServer连接工具

    SQL Server连接工具是数据库管理员和开发人员用于与Microsoft SQL Server交互的重要软件。这些工具提供了多种功能,包括数据库的创建、管理、查询、备份、恢复以及性能优化等。在本篇文章中,我们将深入探讨SQL ...

    SqlDbx连接oracle

    首先,连接Oracle数据库通常需要Oracle客户端软件,但这里提到的“Sqldbx连接oracle,不用安装client”,意味着SqlDbx可能通过一种无需完整Oracle客户端的方式来实现连接。这种连接方式通常依赖于Oracle的Instant ...

    sql连接myeclipse与sql的连接

    sql连接myeclipse与sql的连接

    SQLTools sql连接工具

    SQLTools sql连接工具SQLTools sql连接工具SQLTools sql连接工具

    Windows下Neor Profile SQL 配置监控centos(linux)mysql详细步骤

    - 以Java JDBC为例,需要在应用程序中设置JDBC连接参数,指定Neor Profile SQL作为中间代理。 - 通常格式为:jdbc:mysql://localhost:port/?profileSql=1 - 其中,`localhost` 应替换为Neor Profile SQL所在机器...

    SQLDBX 连接多种类型的数据库

    SQLDBX是一款强大的数据库管理工具,它允许用户方便地连接并操作多种类型的数据库系统,包括SQL SERVER的各种版本、Oracle的不同版本以及MYSQL等。这款软件以其高效、易用和跨平台的特点,深受数据库管理员和开发...

    sql server客户端连接工具

    SQL Server客户端连接工具是数据库管理员和开发人员用来与Microsoft SQL Server进行交互的重要工具。它提供了图形用户界面(GUI)和命令行选项,使得用户能够轻松地执行查询、管理数据库对象以及进行其他数据库维护...

    sqldeveloper连接TIMESTEN

    在本文中,我们将详细介绍如何使用SQL Developer连接到TIMESTEN数据库。 首先,你需要确保已经下载并安装了TIMESTEN的客户端版本7.05,这个版本适用于Windows操作系统。TIMESTEN客户端包含了与数据库交互所需的所有...

    如何查看sql server数据库连接数

    查看 SQL Server 数据库连接数的多种方法 SQL Server 数据库连接数是一个重要的性能指标,它可以帮助数据库管理员了解当前数据库的工作负载和性能。查看数据库连接数有多种方法,本文将介绍四种不同的方法来查看 ...

    sqlserver连接测试工具

    sqlserver连接测试工具

    HeidiSql客户端,可连接mySql,sqlServer等数据库

    标题中的“HeidiSql客户端”指的是HeidiSQL,这是一个轻量级且用户友好的数据库管理工具,主要用于连接MySQL、MariaDB、SQL Server、PostgreSQL和Oracle等不同类型的数据库系统。这款软件以其简单易用的界面和高效的...

    sql左连接,右连接,内连接,全连接讲解

    sql左连接,右连接,内连接,全连接详细讲解

    Neor Profile SQL 汉化

    Neor Profile SQL 汉化文件,兼容版本4.1 安装原版后,将文件放入languages文件夹下,从setting中选择Chinese即可

    SQLServer2008客户端连接工具 sql manager工具

    一款免安装的sqlServer2008的客户端连接小工具,里面有详细的使用说明及汉化说明。和mysql 的 sqlyog一个性质。 注册: 运行registor.reg注册。 汉化:(软件运行保存文件目录不要使用中文目录) 1、运行“Manager....

    SQL Server 连接字符串构造及测试工具

    SQL Server 连接字符串是应用程序连接到SQL Server数据库的关键组件,它包含了所有必要的身份验证、网络协议和数据库信息。在本文中,我们将深入探讨如何构造SQL Server连接字符串,以及如何利用测试工具进行验证。 ...

    MCGS_通网版与SQL连接

    MCGS通网版与SQL连接 MCGS通网版与SQL连接是指在通网版MCGS中保存的数据如何保存到SQL数据库中,以便更好地管理和分析数据。在这个过程中,需要在不同的组态软件中进行连接设置。下面将详细介绍如何在通网版MCGS...

    SQL Server 2014(64位)数据连接工具

    SQL Server 2014(64位)数据连接工具,用于sql server连接数据库使用

    sqlserver 连接字大全

    sqlserver 连接字大全

    kettle 连接sqlserver 驱动

    标题 "kettle 连接sqlserver 驱动" 涉及到的是在数据集成工具 Pentaho Data Integration(简称 Kettle 或 PDI)中,如何配置和使用 SQL Server 数据库的连接。Kettle 是一个强大的ETL(Extract, Transform, Load)...

    LABVIEW与SQL SERVER的连接方法详细说明

    下面就介绍LABVIEW与SQLSERVER的连接方法。连接思路:先在SQLSERVER建立自己的数据库,如MyDB。然后在操作系统建立一数据源(ODBC),此数据源的驱动选择SQLSERVER,数据源与SQLSERVER中的MyDB关联。最后在LABVIEW中...

Global site tag (gtag.js) - Google Analytics