【问题标题】:PHP QUERY still shows NOT results with LIKE?PHP QUERY 仍然显示 NOT 结果与 LIKE?
【发布时间】:2011-05-08 20:22:40
【问题描述】:

我有一个可以正确找到所有内容的搜索,但我现在唯一的问题是它还显示了我不想提取的结果。查询代码如下:

$query="SELECT * FROM users 
WHERE uid!='1' 
AND userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%'";

我希望它显示它现在提取的结果,而不是代码读取为uid!='1' 的结果。

【问题讨论】:

    标签: php mysql where sql-like


    【解决方案1】:

    我认为您的问题是缺少括号。

    $query="SELECT * FROM users WHERE uid != '1' AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";
    

    如果没有括号,AND 只会在前两个条件之间,所有其他条件都不会被踢出,因为它们是 OR'd

    由于 uid 字段可能是 INTEGER 字段,因此您也不应该在引号中包含值 1。应该是这样的:

    $query="SELECT * FROM users WHERE uid != 1 AND ( userf LIKE '%$key%' OR userl LIKE '%$key%' OR userm LIKE '%$key%' )";
    

    【讨论】:

    • 我在考虑使用括号,但是对于每个单独的,这可能不会起作用。感谢您的帮助!!!我现在可以让我的其他搜索更好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2020-08-31
    • 2017-03-15
    • 2022-01-03
    • 2019-03-21
    • 1970-01-01
    • 2016-11-07
    相关资源
    最近更新 更多