我有一些表具有完全相同的模式,唯一的原因是它分开是因为它们很大。 所以如果我做了
select * from
(select * from ptable p1
union select * from ptable2 p2
.. and so on) pp
where pid=1234
,这需要很长时间。
我喜欢写一个我检查ptable值为1234的ptable(如果存在),然后从右表中选择行。 我怎么做? pid是唯一的,只存在于一个表中,它也没有任何排序顺序。
答案 0 :(得分:1)
经过一些实验后,我设法解决了我的问题,不确定它是否是最好的成为业余爱好者的方式但是有效。
CREATE PROCEDURE 'sproc'(IN pQryID INT)
BEGIN
select count(*) as count into @rowCountp1 from p1 where pid=pQryID;
select count(*) as count into @rowCountp2 from p2 where pid=pQryID;
.. and so on for other similar tables ..
if @rowCountp1>0 THEN
(SELECT * from p1 where pid=pQryID);
elseif @rowCountp2>0 THEN
(SELECT ( from p2 where pid=pQryID);
end if;
END