当前位置:  开发笔记 > 编程语言 > 正文

SQL语法和OR子句问题

如何解决《SQL语法和OR子句问题》经验,为你挑选了1个好方法。

我正在使用以下内容查询数据库:

SELECT * FROM DB.table WHERE 
hidden = 0 AND
column1 LIKE '%$search%' OR
column2 LIKE '%$search%';

但是,即使隐藏列为1,它仍然会输出查询.

这可能很简单,但我想我已经看了太多.



1> shawnt00..:

把括号括在OR'd条件下.

默认情况下的优先级是这样的:

    (hidden = 0 AND column1 LIKE '%$search%')
OR  (column2 LIKE '%$search%')

您希望它以这种方式运行:

    (hidden = 0)
AND (column1 LIKE '%$search%' OR column2 LIKE '%$search%')

如果您曾经研究过布尔代数或逻辑,您可能会记得逻辑AND与常规乘法相似,而逻辑OR与加法相对应.因此,如果你考虑初中代数课的操作顺序,这是记住这一点的好方法.而且你可能会养成OR在查询中看到的任何时候检查这个的习惯.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有