繁体   English   中英

挣扎于简单的 boolean WHERE 子句

Struggling with simple boolean WHERE clause

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

疲惫的大脑——也许你能帮上忙。
我的表有两个位字段:
1) TestedByPCL
2) TestedBySPC
两者都可能 = 1。
用户界面有两个对应的复选框。 在代码中,我将检查转换为 int。

int TestedBySPC = SearchSPC ? 1 : 0;
int TestedByPCL = SearchPCL ? 1 : 0;

我的WHERE子句看起来像这样:

WHERE TestedByPCL = {TestedByPCL.ToString()} AND TestedBySPC = {TestedBySPC.ToString()} 

问题是当只选择一个复选框时,我想返回相应字段设置为 1 或两个字段都设置为 1 的行。
现在,当两个字段都设置为 1 时,我的WHERE子句要求同时选中两个复选框,而不是只选中一个。
因此,如果选中一个复选框,则返回该字段 = 1 的记录,无论其他字段是否 = 1。

1 个回复

第二次尝试(我想我现在明白了):

WHERE ((TestedByPCL = {chkTestedByPCL.IsChecked} AND TestedBySPC = {chkTestedBySPC.IsChecked}) 
OR 
(TestedByPCL = 1 AND TestedBySPC = 1 AND 1 IN ({chkTestedByPCL.IsChecked}, {chkTestedBySPC.IsChecked})))

误解了这个问题。 AND更改为 OR

 WHERE TestedByPCL = {chkTestedByPCL.IsChecked} OR TestedBySPC = {chkTestedBySPC.IsChecked}

还:

  1. SQL 服务器没有Boolean数据类型,它最接近的选项是bit数据类型。

  2. 大括号的使用建议使用字符串连接来构建你的where子句。 当您处理复选框时,这可能不是什么大问题,但在处理自由文本输入时会带来安全风险,因为它为SQL 注入攻击打开了大门。 尽可能更好地使用参数。

1 where 子句中的布尔逻辑

我想包含一条记录,只要 value_1 和 value_2 都不为 0。为什么下面的这个查询排除了记录? 我如何调整它以说“只要两个值不是同时为 0,我就想包括这两个值”? ...

2 在join和where子句中与select苦苦挣扎

我正在通过phpmyadmin运行一些SQL。 我正在尝试使用2个表进行查询。 第一个xlsws_product具有所有产品信息,第二个xlsws_category_assn包含两列,其中一列具有类别ID,另一列具有产品ID。 类别名称在第三张表中,但我不需要它们。 我要做的是从产品 ...

2015-04-19 21:08:57 1 43   mysql
3 SQL Server:“布尔” WHERE子句中的子查询

我有使用以下结构的T-SQL查询(SQL Server 2008/2012): 这可以很好地工作,并使用NULL参数自动优化WHERE子句中所有AND'ed部分。 但是,当我对子查询执行相同的操作时,即使参数为NULL,优化器似乎仍会执行子查询: 我的问题是,为什么优化程序 ...

5 如何在 SQLite 的 where 子句中使用 boolean 字段?

这似乎是一个愚蠢的问题,然而。 可能是我的 IDE 惹恼了我。 这是代码(这是从 DbLinq 生成的): 如果我运行此查询,我会返回三行,其中包含两个 boolean 字段,分别称为 Active 和 Public。 添加注释掉的行不返回任何行。 将行更改为以下任何一项: 它不起作用。 错误或没 ...

6 PostgreSQL 中 WHERE 子句中的可空布尔检查

以下查询产生错误 在 WHERE 子句中执行可为空的布尔值检查的正确方法是什么? 乌达令人惊讶的是,这个工作正常 PS:实际上这也不起作用,因为 null 值被强制转换为 boolean ,因此else被触发而不是when null 。 ...

9 Sql - 在where子句中使用布尔逻辑

我有一个看起来像这样的where子句 它基本上允许为报告指定ceratin范围内的过滤如果省略了值,那么它们默认为非常大的正数或负数 我遇到的问题是某些用户没有定义Tolerance,这意味着他们的Tolerance百分比总是为零, 所以如果报告指定了这样的标准 然后 ...

10 where子句中的where子句

我需要这样做: 有一个名为table1的表,它具有一个雇员ID列,一个仅具有值1和0的状态列和一个具有值100,101,102的部门列。 我想列出状态= 0和(部门= 100,状态= 1)的所有employeeid 请帮我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM