【发布时间】:2026-01-10 13:10:01
【问题描述】:
我一直在使用一个查询来检查用户从搜索字段中输入的内容并取回相关数据。此查询使用多个赞来检查各个字段(名称、参考、订单 ID 等)。
我注意到查询忽略了它检查 用户 ID 的位置以仅显示该用户的记录。而是带回所有用户的记录。这是当前查询:
SELECT ORDER_ID, ORDER_DATE, ORDER_TIME, ORDER_REF, ORDER_RECNAME
FROM ORDERS
WHERE USER_ID = '$userID' AND ORDER_ID LIKE '%$SearchData%'
OR ORDER_RECNAME LIKE '%$SearchData%' OR ORDER_REF LIKE '%$SearchData%'
OR ORDER_POSTCODE LIKE '%$SearchData%'
GROUP BY ORDER_ID, ORDER_DATE, ORDER_TIME, ORDER_REF, ORDER_RECNAME
我有什么地方出错了吗?它正确使用了Likes,但没有正确使用WHERE USER_ID 部分。
【问题讨论】:
-
试试这个:SELECT ORDER_ID, ORDER_DATE, ORDER_TIME, ORDER_REF, ORDER_RECNAME FROM ORDERS WHERE USER_ID = '$userID' AND (ORDER_ID LIKE '%$SearchData%' OR ORDER_RECNAME LIKE '%$SearchData%' OR ORDER_REF LIKE '%$SearchData%' OR ORDER_POSTCODE LIKE '%$SearchData%' ) 按 ORDER_ID、ORDER_DATE、ORDER_TIME、ORDER_REF、ORDER_RECNAME 分组
-
@FlorinSecal 谢谢!现在工作完美:)
标签: php mysql sql where sql-like