如何在MySQL中比较一个请求的结果和另一个请求结果



你能帮我准备正确的查询吗?

我需要从表category_description(其中name = :name)中获取category_id,并检查第一次查询中parent_id = category_id所在的表category中是否有记录。

表格类别description:

|category_id| name |
--------------------
| 3         | X    |
--------------------
| 2         | Y    |
--------------------
| 1         | Z    |
--------------------

表类别:

category_id | parent_id |
-------------------------
| 3         | 2         |
-------------------------
| 2         | 1         |
-------------------------
| 1         | 0         |
-------------------------

所以需要按名称从第一个表中获取值,之后我需要从第一个表格的row = category_id中获取parent_id的值,并检查是否是具有category_id = parent_id 的行

简而言之,我需要检查类别是否存在。如果没有添加,如果是跳过。

我这样做:

 SET @v1 = (SELECT category_id FROM category_description where name =:category_name);
SET @v2 = (SELECT parent_id FROM category WHERE category_id = @v1);
SELECT COUNT(*) records FROM category_description,category 
WHERE category.category_id = @v2
AND category_description.name =:category_name

但当

SET @v1 = (SELECT category_id FROM category_description where name =:category_name);

返回多个结果,并且PDO不支持多个查询。请帮助我:(

这不是完全可以理解的,但我认为你可以通过这样的简单连接来获得它

SELECT COUNT(*) records FROM category_description,category 
WHERE category.parentid = category_description.categoryid
AND category_description.name =:NAME

因此,在这里,您将获得与您提供的名称匹配的行数

相关内容

  • 没有找到相关文章

最新更新