如何检查哪个表具有ID并查询其行

时间:2016-12-10 17:57:53

标签: mysql stored-procedures

我有一些表具有完全相同的模式,唯一的原因是它分开是因为它们很大。 所以如果我做了

select * from 
(select * from ptable p1
union select * from ptable2 p2
.. and so on) pp
where pid=1234 

,这需要很长时间。

我喜欢写一个我检查ptable值为1234的ptable(如果存在),然后从右表中选择行。 我怎么做? pid是唯一的,只存在于一个表中,它也没有任何排序顺序。

1 个答案:

答案 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