CREATE PROCEDURE UserCheck(in ip int(20),in gid varchar(32))
BEGIN
DECLARE x int;
SET @x=0;
if EXISTS( SELECT @x=id FROM a_usercheck WHERE guid = gid) THEN
  // 如何在执行上面语句时,同时获取那一行的 id
  SELECT @x; // 这个值始终=0
ELSE
  INSERT INTO ....
  END IF;
END谢谢.

解决方案 »

  1.   

    if EXISTS( SELECT @x:=id FROM a_usercheck WHERE guid = gid) THEN
      

  2.   

    好像同时不行,试试这个吧:
    delimiter //
    CREATE PROCEDURE UserCheck(in ip int(20),in gid varchar(32))
    BEGIN
    DECLARE x int;
    set @x=0;
        if EXISTS( SELECT id FROM a_usercheck WHERE guid = gid) THEN
          SELECT id into @x FROM a_usercheck WHERE guid = gid;
          SELECT @x;
        ELSE
          SELECT -1;
        END IF;
    END//