Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将两个查询转换为整数并进行比较?_Mysql_Sql - Fatal编程技术网

Mysql 如何将两个查询转换为整数并进行比较?

Mysql 如何将两个查询转换为整数并进行比较?,mysql,sql,Mysql,Sql,我有以下查询,都返回一个整数项 (SELECT COUNT(*) FROM participants WHERE `status` = 'a' AND meetid = NEW.meetid) = (SELECT capacity FROM participants INNER JOIN rooms

我有以下查询,都返回一个整数项

(SELECT COUNT(*) 
 FROM participants 
 WHERE `status` = 'a' 
   AND meetid = NEW.meetid) = (SELECT capacity 
                               FROM participants 
                               INNER JOIN rooms 
                                  ON pid = room 
                               WHERE room = NEW.pid)
我想比较这些整数是否相等,但我得到了MySQL错误。

您可以将SELECT放在它们前面:

SELECT ((SELECT COUNT(*) FROM participants WHERE `status` = 'a' AND meetid = NEW.meetid) = 
        (SELECT capacity FROM participants INNER JOIN rooms ON pid = room WHERE room = NEW.pid)
       ) as SameFlag
这假设第二个子查询只返回一个值。否则您将得到一个错误。这个查询也可以用几种方式重写,但上面的内容似乎是对原始查询的最小更改

编辑:

我猜你想要的更像这样:

SELECT (p.cnt = r.capacity)
FROM (SELECT COUNT(*) as cnt FROM participants WHERE `status` = 'a' AND meetid = NEW.meetid) p CROSS JOIN 
     (SELECT capacity FROM rooms room = NEW.pid) r;

然而,将名为room的东西与NEW.pid进行比较似乎很奇怪。

出于某种原因,我得到了错误:,但您的代码似乎在编辑器中工作。我让它工作了,但为什么MySQL在执行查询时没有显示有用的东西?使用workbench,查询结果显示为查询。在编写查询时,我还可以采取哪些其他方法?