(或)禁用条件的早期部分

Ala*_*mal 1 php sql

我表中数据的示例

post_id|post_title|post_status

1       i         1

2       love      0

3       sof       0
Run Code Online (Sandbox Code Playgroud)

我有问题(或)

我正在尝试这种情况

WHERE post_status = '1' AND post_id = '1' OR post_title = 'i';
//it should return with i
// but it returned with love,sof
Run Code Online (Sandbox Code Playgroud)

问题是由于条件结束时的(OR)引起的

它已经被禁用了早期的部分条件

那么,我如何正确使用OR?

我希望通过post_id和post_title这两个列搜索帖子

注意:

post_status='1'由于某种原因,我无法移动到条件的最后,它应该是在开始

Mic*_*ski 6

您只需要逻辑分组(),否则,OR条件,无论何时为真,都将取代所需的条件post_status = 1,无论它是否匹配.

WHERE post_status = '1' AND (post_id = '1' OR post_title = 'i');
Run Code Online (Sandbox Code Playgroud)

在构造multipart WHERE子句时,您应该始终考虑逻辑组和优先级,尤其是在使用逻辑时OR,因为它可以快速地破坏子句的其余部分.