フィールドが空であるかどうかをチェックして1つのクエリを実行することになっているこのストアドプロシージャがあります。そうでない場合は、別のクエリを実行しますが、エラーが発生します。コードは次のとおりです。
DELIMITER $$
CREATE PROCEDURE mw_info(
m_date_begin INTEGER,
m_date_end INTEGER,
m_from INTEGER,
m_numberOfrecords INTEGER,
m_callsource VARCHAR(15))
BEGIN
IF (m_callsource = '') THEN
SELECT *
FROM mw_iaa
WHERE calllegcode IN ('CB_A','CB_B')
AND calltime BETWEEN m_date_begin AND m_date_end
ORDER BY calltime DESC
LIMIT m_from, m_numberOfrecords;
ELSE
SELECT *
FROM mw_iaa
WHERE calllegcode IN ( 'CB_A', 'CB_B')
AND callsource = m_callsource
AND calltime BETWEEN m_date_begin AND m_date_end
ORDER BY calltime DESC
LIMIT m_from, m_numberOfrecords;
END IF;
END;
END$$
DELIMITER ;
そしてこれはエラーです:
エラーコード:1064SQL構文にエラーがあります。
1行目の「elseSELECT*FROM mw_iaa WHERE calllegcode」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
問題は何でしょうか?