Usage of MySQL's “IF EXISTS”

前端 未结 5 1976
Happy的楠姐
Happy的楠姐 2020-11-22 13:25

Here are two statements that I\'d like to work, but which return error messages:

IF EXISTS (SELECT * FROM gdata_calendars WHERE `group` =  ? AND id = ?) SELE         


        
5条回答
  •  野趣味
    野趣味 (楼主)
    2020-11-22 13:45

    I found the example RichardTheKiwi quite informative.

    Just to offer another approach if you're looking for something like IF EXISTS (SELECT 1 ..) THEN ...

    -- what I might write in MSSQL

    IF EXISTS (SELECT 1 FROM Table WHERE FieldValue='')
    BEGIN
        SELECT TableID FROM Table WHERE FieldValue=''
    END
    ELSE
    BEGIN
        INSERT INTO TABLE(FieldValue) VALUES('')
        SELECT SCOPE_IDENTITY() AS TableID
    END
    

    -- rewritten for MySQL

    IF (SELECT 1 = 1 FROM Table WHERE FieldValue='') THEN
    BEGIN
        SELECT TableID FROM Table WHERE FieldValue='';
    END;
    ELSE
    BEGIN
        INSERT INTO Table (FieldValue) VALUES('');
        SELECT LAST_INSERT_ID() AS TableID;
    END;
    END IF;
    

提交回复
热议问题