2017-11-25 15 views
0

테이블에서 값을 반환하려고합니다. 테이블은 나중에 값이 변경되는 매개 변수 테이블입니다. 테이블 이름은 '매개 변수'이고 값 열에서 값을 가져 오려고합니다. '기본 URL'입니다.테이블에서 행의 MySQL 함수 반환 값

PHP 관리자는 다음 쿼리를 사용하여 함수를 만들고 있습니다. 나에게 오류가있다. 오류를 찾을 수 없습니다.

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

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

가 어디에 오류가 1064 근처 오류는 무엇입니까? 나는 비슷한 상황을 찾을 수 없었다. 과거에는 매개 변수 테이블을 사용했지만 함께 만들 함수는 만들지 않았습니다. 내가 원하는 것을 할 수있는 더 좋은 방법이 있습니까?

감사합니다.

+0

이것은 쿼리 후 단지 부정확 한 세미콜론 일까? '...'기본 URL ';' – EdmCoff

+0

@EdmCoff 아니요, 아직 추가되지 않았습니다. select 문에서 변수를 설정하고 변수를 선언하는 것과 같은 예제에서 비트와 부분을 보았지만 이와 같은 것은 없습니다. 그것이 내가 오류가 어디에 있는지를 알 수없는 이유입니다. –

답변

1

나는이 같은 유사한 기능을 작성하고이 라인은 당신이 @ 여부와 변수 사이에 약간의 혼동이있을 수

DECLARE @url VARCHAR; 

를 작동하게 제거하기 위해 노력했다. 이 링크는 사용자에게 유용 할 수 있습니다. MySQL: @variable vs. variable. What's the difference?

한 가지 더 많은 점은 일부 사용자는 구분 기호에 문제가있을 수 있습니다. 나는이 작품을 얻는다.

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ánh Bùi Đức 맞습니다. –