Php 返回奇数结果的类MySQL语句

Php 返回奇数结果的类MySQL语句,php,mysql,sql-like,Php,Mysql,Sql Like,当我使用AND或我在查询中的筛选结果(如按价格0和50000)对多个列执行类似MySQL的查询时,将停止工作。如果我从我的LIKE语句中去掉OR,搜索就可以了。如何使用LIKE语句正确搜索多个列 下面是一个忽略价格的非工作语句示例 SELECT * FROM table WHERE Price BETWEEN 0 AND 500000 AND class_id = 1 AND TotalSqFt BETWEEN 0 AND 999999999 AND Acres

当我使用AND或我在查询中的筛选结果(如按价格0和50000)对多个列执行类似MySQL的查询时,将停止工作。如果我从我的LIKE语句中去掉OR,搜索就可以了。如何使用LIKE语句正确搜索多个列

下面是一个忽略价格的非工作语句示例

SELECT * 
  FROM table 
 WHERE Price BETWEEN 0 AND 500000 
   AND class_id = 1 
   AND TotalSqFt BETWEEN 0 AND 999999999 
   AND Acres BETWEEN 0 AND 999999999 
   AND InclusionsFeatures LIKE '%horse%' 
    OR Remarks LIKE '%horse%' 
ORDER 
    BY Price DESC
该语句工作正常,但现在我只能对一列执行类似的查询

SELECT * FROM table WHERE Price BETWEEN 0 AND 500000 AND class_id = 1 AND TotalSqFt BETWEEN 0 AND 999999999 AND Acres BETWEEN 0 AND 999999999 AND InclusionsFeatures LIKE '%horse%' ORDER BY Price DESC

您混合使用了
以及
运算符。因此,您可以正确地将这些条件括起来,它们将起作用。对于您的
状况,您可以附上如下内容:

SELECT * 
FROM table 
WHERE (Price BETWEEN 0 AND 500000) AND 
      (class_id = 1) AND 
      (TotalSqFt BETWEEN 0 AND 999999999) AND 
      (Acres BETWEEN 0 AND 999999999) AND 
      (
       (InclusionsFeatures LIKE '%horse%') OR (Remarks LIKE '%horse%')
      )
ORDER BY Price DESC

您混合使用了
以及
运算符。因此,您可以正确地将这些条件括起来,它们将起作用。对于您的
状况,您可以附上如下内容:

SELECT * 
FROM table 
WHERE (Price BETWEEN 0 AND 500000) AND 
      (class_id = 1) AND 
      (TotalSqFt BETWEEN 0 AND 999999999) AND 
      (Acres BETWEEN 0 AND 999999999) AND 
      (
       (InclusionsFeatures LIKE '%horse%') OR (Remarks LIKE '%horse%')
      )
ORDER BY Price DESC

在第一条语句中,当您在最后一个AND之后添加OR时,Mysql将一直运行到运行OR。如果或条件已通过,则所有之前和将忽略。因此,查询无法正确运行

看看这个查询:

SELECT
    * 
FROM
TABLE 
WHERE
    Price BETWEEN 0 
    AND 500000 
    AND class_id = 1 
    AND TotalSqFt BETWEEN 0 
    AND 999999999 
    AND Acres BETWEEN 0 
    AND 999999999 
    AND (InclusionsFeatures LIKE '%horse%' OR Remarks LIKE '%horse%' ) 
ORDER BY
    Price DESC

通过用括号对您喜欢的内容进行分组,它使用AND检查括号内的条件和所有其他条件。因此,查询返回与括号内的条件和所有其他条件相匹配的数据。

在第一条语句中,当您在最后一条和之后添加或时,Mysql将一直运行到或。如果或条件已通过,则所有之前和将忽略。因此,查询无法正确运行

看看这个查询:

SELECT
    * 
FROM
TABLE 
WHERE
    Price BETWEEN 0 
    AND 500000 
    AND class_id = 1 
    AND TotalSqFt BETWEEN 0 
    AND 999999999 
    AND Acres BETWEEN 0 
    AND 999999999 
    AND (InclusionsFeatures LIKE '%horse%' OR Remarks LIKE '%horse%' ) 
ORDER BY
    Price DESC

通过用括号对您喜欢的内容进行分组,它使用AND检查括号内的条件和所有其他条件。因此,查询与括号内的条件和所有其他条件匹配的返回数据。

注意括号。您应该根据查询逻辑将“或”括起来,注意括号。您应该根据查询逻辑将“或”括起来