簡體   English   中英

MySQL在同一條語句中使用LIKE和AND進行選擇不起作用

[英]MySQL select using LIKE and AND in same statement not working

如果我使用以下語句:

$query = "select * from Products where category_description='".$search_dept."' ORDER BY $orderby LIMIT $offset, $rowsPerPage";

我得到3個結果,這是正確的。

如果我使用以下語句:

$query = "select * from Products where material like \"%$trimmed%\" OR ProductName like \"%$trimmed%\" ORDER BY $orderby LIMIT $offset, $rowsPerPage";

我得到正確的結果。

但是,如果我嘗試將它們結合起來:

$query = "select * from Products where category_description='".$search_dept."' AND material like \"%$trimmed%\" OR ProductName like \"%$trimmed%\" ORDER BY $orderby LIMIT $offset, $rowsPerPage";

我得到的結果不正確。 它返回太多了。 有什么想法我做錯了嗎?

我建議在兩個邏輯條件集(更重要的是“或”部分)周圍加上括號。 實際上,您隱式地信任操作順序,但我認為這並不決定您想要的方式。 括號應該可以解決問題:

$query = "select * from Products 
    where category_description='".$search_dept."' 
    AND (material like \"%$trimmed%\" OR ProductName like \"%$trimmed%\") 
    ORDER BY $orderby LIMIT $offset, $rowsPerPage";

您需要將第二個和第三個條件分組。

$query = "SELECT * FROM Products 
          WHERE category_description='".$search_dept."' AND 
               (material LIKE \"%$trimmed%\" OR ProductName LIKE \"%$trimmed%\") 
          ORDER BY $orderby 
          LIMIT $offset, $rowsPerPage";

您需要()

... AND ( material like \"%$trimmed%\" OR ProductName like \"%$trimmed%\" )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM