用户表 u_user表
USERID用户ID(PK)
EMAIL用户EMAIL(唯一的)
好友关系表u_friend表
userid用户ID(关联用户表PK)
fuserid好友ID传入参数 (userid当前用户ID,别人的EMAIL)ORACLE 求结果:
如果 别人的EMAIL 不在 u_user表 中,返回0
如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 不存在记录 返回1
如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 存在记录 返回2求SQL
USERID用户ID(PK)
EMAIL用户EMAIL(唯一的)
好友关系表u_friend表
userid用户ID(关联用户表PK)
fuserid好友ID传入参数 (userid当前用户ID,别人的EMAIL)ORACLE 求结果:
如果 别人的EMAIL 不在 u_user表 中,返回0
如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 不存在记录 返回1
如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 存在记录 返回2求SQL
RETURN NUMBER
AS
V_RES NUMBER;
v_cnt number;
v_fid number;
BEGIN
--如果 别人的EMAIL 不在 u_user表 中,返回0
select count(*)
into v_cnt
from u_user u
where u.EMAIL=p_EMAIL;
if v_cnt=0 then
v_res=0;
return v_res;
else
--先取得持有该EMAIL的用户ID
select USERID
into v_fid
from u_user u
where u.EMAIL=p_EMAIL;
end if;
--如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 不存在记录 返回1
--如果 当前用户ID 和 持有该EMAIL的用户ID 在 好友关系表 存在记录 返回2
v_cnt:=0;--置0
select count(*)
into v_cnt
from u_friend uf
where uf.userid=p_userid
and uf.fuserid=v_fid;
if v_cnt=0 then
v_res=1;
return v_res;
else
v_res=2;
return v_res;
end if;--更新失败时返回-1
EXCEPTION
WHEN OTHERS THEN
V_RES=-1;RETURN V_RES;
END;
v_res number;
v_cnt1 number;
v_cnt2 number;
begin
select count(1) into v_cnt1 from u_user where email = p_em;
select count(1)
into v_cnt2
from u_friend
where (userid = p_id and
fuserid = (select userid from u_user where email = p_em))
or (userid = (select userid from u_user where email = p_em) and
fuserid = p_id);
if v_cnt1 = 0 then
v_res := 0;
else
if v_cnt2 = 0 then
v_res := 2;
else
v_res := 1;
end if;
end if;
return v_res;
end pp;