2017-11-25 14 views
0

テーブルから値を返そうとしています。このテーブルは、今後値が変更されるパラメータテーブルです。テーブル名は「パラメータ」で、値の列から値を取得しようとしていますが、用語ベース= 'ベースURL'テーブル内の行からMySQL関数の戻り値

PHP管理では、次のクエリで関数を作成しています私は誤りです。私はエラーを見つけることができません。

私は " DECLARE @url VARCHAR(255); SET @url = ''; SELECT p.value INTO @url FROM Param"

私の誤差はありますか?近くにエラー1064を取得しています

DECLARE @url VARCHAR; 
SET @url = ''; 
SELECT p.value INTO @url FROM Parameters p WHERE p.Term = 'Base URL'; 
RETURN @url; 

私は同様の状況を見つけることができませんでした。私は過去にパラメータテーブルを使用しましたが、パラメータテーブルを作成したことはありませんでした。私がしたいことをするためのより良い方法はありますか?

ありがとうございます!

+0

これはおそらくクエリの後にセミコロンがないのでしょうか?すなわち、 "... 'ベースURL';" – EdmCoff

+0

@EdmCoffいいえ、私はそれを加えました、それはまだ動作しません。私は、select文の中で変数を設定し、変数を宣言するような例からのビットと部分を見てきましたが、このようなものはありません。だから私はエラーがどこにあるのか分からない。 –

答えて

1

私はこのような同様の機能を作成し、この行が、それはあなたが@かの変数の間にいくつかの混乱を持っているかもしれませ

DECLARE @url VARCHAR; 

を作品作り削除しようとしています。このリンクはあなたに役立つかもしれませんMySQL: @variable vs. variable. What's the difference?

もう1つ、デリミタに問題がある人もいます。私はこの仕事を得る

DROP FUNCTION IF EXISTS get_url; 

    DELIMITER $$ 
    CREATE FUNCTION get_url() 
    RETURNS varchar(255) 
    BEGIN 
     DECLARE url varchar(255); 

     SELECT p.value INTO url FROM Parameters p WHERE p.Term = 'Base URL'; 

     RETURN url; 
    END$$ 

    DELIMITER ; 
+0

私は混乱のために申し訳ありません、私が得ようとしている値は 'value'カラムの' Parameters'テーブルからです。私はterm = "Base URL"という値だけを返そうとしています。それはほぼ定数のようです。しかし、私は将来それを変更する予定なので、それを取得する関数を作成したいのです –

+0

パラメータはテーブルの実名です。 –

+0

@KhánhBùiĐứcはいいいえ –