1

簡単なタスクを実行するために、以下のような単純な関数を作成したいと思います。

DELIMITER $$
CREATE FUNCTION f(key TEXT, str TEXT) RETURNS INT
BEGIN
    IF LOCATE(key, str) > 0 THEN
        RETURN 1;
    ELSE
        RETURN 0;
    END IF;
END $$
DELIMITER ;

しかし、エラーが発生しました:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'key T
EXT, str TEXT) RETURNS INT
BEGIN
    IF LOCATE(key, str) > 0 THEN
        R' at line 1

どうしたの?

4

2 に答える 2

3

keyはMySqlの予約語であるため、関数に構文エラーがあります。解決策:パラメーターの名前を変更するか、次のkeyようにバッククォート内に配置します。

CREATE FUNCTION f(`key` TEXT, str TEXT) RETURNS INT
于 2013-01-28T18:41:04.857 に答える
1

keyはmysqlのキーワードです。`の間に置くか、別の名前を使用してください。

于 2013-01-28T18:40:44.407 に答える