条件不工作请指导我如何获得正确的数据

condition is not working please guide me how to get proper data

SELECT * 
FROM `tbl_property` 
WHERE 
    `sublocality` LIKE '%dwarka%' OR 
    `sublocality` LIKE '%delhi%' OR 
    `property_type` LIKE '%1%' OR
    `property_type` LIKE '%2%' AND
    `status` = 1 AND 
    `property_category` = 1

这是我的查询,但条件不工作请指导我如何使用此类 sql 查询

获取正确的数据

可能您需要在查询中添加括号以对 OR/AND 条件进行分组:

SELECT * 
FROM `tbl_property` 
WHERE 
(
    `sublocality` LIKE '%dwarka%' OR 
    `sublocality` LIKE '%delhi%' OR 
    `property_type` LIKE '%1%' OR
    `property_type` LIKE '%2%'
) AND
    `status` = 1 AND 
    `property_category` = 1

首先,我认为你应该在你的问题中描述你想要的结果是什么样子的,你想查询什么,因为现在还不清楚。

其次,非文本搜索不应该使用LIKE,而是使用等号运算符=

第三,您可能需要大括号 ( and ) 来对部分查询进行分组,因为您在一个查询中使用 OR 和 AND,它们会混淆。

所以,我会试着举个例子。假设你想找到带有 sublocality = 'delhi' 和 属性 id 1 的属性,你应该写:

SELECT * FROM `tbl_property` WHERE `sublocality` LIKE 'delhi' AND `property_type` = 1;

现在,如果你想获得 属性 1,在 delhi 和 dwarka sublocalities,你可以写:

SELECT * FROM `tbl_property` WHERE (`sublocality` LIKE 'delhi' OR `sublocality` LIKE 'dwarka') AND `property_type` = 1;

这样,您可以确保 part1betweenbracespart2 匹配。如果您不添加大括号,它将计算为:

WHERE `sublocality` LIKE 'delhi' OR (`sublocality` LIKE 'dwarka' AND `property_type` = 1);

因此,在一个查询中混合使用 ORAND 时,请务必添加大括号。