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,查询结果显示为查询。在编写查询时,我还可以采取哪些其他方法?