PHP:MYSQL查询中的多个AND条件


PHP: multiple AND conditions in MYSQL query?

我试图弄清楚为什么我不能在mysql查询中运行多个AND条件。

基本上这是我的代码:

SELECT id, category_name, url, category_name_unedit FROM mytable WHERE category_name='Girls Clothes' AND category_name='Boys Clothes' GROUP BY category_name

上面的代码没有返回任何东西,但当我像这样单独运行代码时:

SELECT id, category_name, url, category_name_unedit FROM mytable WHERE category_name='Girls Clothes' GROUP BY category_name

或者像这样:

SELECT id, category_name, url, category_name_unedit FROM mytable WHERE category_name='Boys Clothes' GROUP BY category_name

那么它工作得很好!

这是一个如此基本的问题,不幸的是我不知道如何解决它

有人能就这个问题提出建议吗?

这是因为查询的逻辑关闭了。如果你仔细想想,你不可能有一个类别名称是Girls Clothings AND Boys Clothing。但是,您可以得到一个名称为Girls Clothings或Boys Clothing的结果。

查询应该看起来像:

SELECT id, 
category_name, 
url, 
category_name_unedit 
FROM mytable 
WHERE category_name='Girls Clothes' 
OR category_name='Boys Clothes' 
GROUP BY category_name

我猜您想要同时属于这两类的url。如果是:

SELECT url
FROM mytable 
WHERE category_name IN ('Girls Clothes', 'Boys Clothes')
GROUP BY url
HAVING COUNT(*) = 2;

如果您只想检查其中一个类别,那么在查询中使用IN(或OR)。

SELECT id, category_name, url, category_name_unedit FROM mytable WHERE category_name='Girls Clothes' AND category_name='Boys Clothes' GROUP BY category_name

因为一个项目不可能有2个category_name s。

如果它是"女孩的衣服"还是"男孩的衣服",你可能打算找到它。在这种情况下,您将使用OR而不是AND。

SELECT id, category_name, url, category_name_unedit FROM mytable WHERE category_name='Girls Clothes' OR category_name='Boys Clothes' GROUP BY category_name