0

私はこれをかなり長い間デバッグしようとしてきましたが、成功していません。

以下のクエリに where 句を追加するとすぐに mySQL クエリが壊れているようです。

これは、次の場合に結果を返さないことに注意してください。

SELECT * FROM `workorders` WHERE (`status`='Open') AND 
 `job_site_name` LIKE '%".$searchword."%'  ORDER BY `date_promised` ASC LIMIT 20

これは where 句のない同じクエリであり、期待どおりの結果を返しますがstatus=Open、クエリの一部として where が必要です...

SELECT * FROM `workorders` WHERE 
 `job_site_name` LIKE '%".$searchword."%'  ORDER BY `date_promised` ASC LIMIT 20

さらに、これは機能します(ステータス列が存在し、他の場合に機能することを示しています):

SELECT * FROM `workorders` WHERE (`status`='Open') AND `invoice_number` LIKE 
  '%".$searchword."%'  ORDER BY `date_promised` ASC LIMIT 20

この問題の原因を特定するための支援に感謝します。

よろしくお願いします!

4

1 に答える 1

0

問題は、両方の基準が満たされていないことです。句を使用する必要がある場合は、次のORことができます

SELECT * 
FROM `workorders` 
WHERE (`status`='Open' 
   OR `job_site_name` LIKE '%".$searchword."%')
ORDER BY `date_promised` ASC 
LIMIT 20
于 2013-03-05T22:56:37.517 に答える