不能在mysql查询中有两个where语句

时间:2016-11-30 01:43:15

标签: php mysql

我必须在数据库中搜索某个结果,这些结果在一个表中,但不在另一个表的某个列中。我的查询是我到目前为止所做的。

    $sql = "SELECT * FROM users WHERE name LIKE '%".$_POST["search"]."%' AND NOT IN 
(SELECT friend FROM friends WHERE user='{$user_name}')";  

你可以看到我有WHERE,然后我宣布它必须搜索的第一个项目。但后来我添加了AND,所以我可以搜索括号中的另一个表。

在不必将格式更改为多的情况下,我可以采取哪种方式执行此操作的最佳方法是什么?

如果有任何人有任何疑问,请在下面发布。所以我可以在将来提高我的问题质量,请在下面发表任何我可以改进的方法。

2 个答案:

答案 0 :(得分:2)

问题不在于使用两个WHERE条款,而不是写作:

... WHERE name LIKE '%xxx%' AND NOT IN (...) ...

你必须写:

... WHERE name LIKE '%xxx%' AND name NOT IN (...) ...

答案 1 :(得分:0)

"SELECT * FROM users left join friends on users.name=friends.friend WHERE friends.friend IS NULL AND users.name LIKE '%".$_POST["search"]."%'"