我想从两个表中收集id,合并这些表以使用它们的IN语句来查找计数(*),如下所示:
drop function if exists listing_count;
create function listing_count(parent int(11)) returns int(11) deterministic
begin
declare count int(11) default 0;
declare ARRAY1;
declare ARRAY2;
set ARRAY1=(select id from category1);
set ARRAY2=(select id from category2);
set count=(select count(*) from listing_category where category in(ARRAY1+ARRAY2));
return count;
end
是否可以设置并声明所选结果(ARRAY1和ARRAY2)以便稍后使用? 我不想将所有内容合并为一个查询。
答案 0 :(得分:0)
MySQL没有数组,只能在变量中存储单个值。您可以在split
和WHERE category IN
中使用子查询来组合这两个表。
UNION
或使用SELECT COUNT(*)
FROM listing_category
WHERE category IN (
SELECT id FROM category1
UNION
SELECT id FROM category2
);
:
JOIN