我表中数据的示例
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'由于某种原因,我无法移动到条件的最后,它应该是在开始
您只需要逻辑分组(),否则,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,因为它可以快速地破坏子句的其余部分.