MYSQL存储过程不插入

时间:2017-02-16 21:57:37

标签: mysql wordpress stored-procedures parameter-passing

我有一个存储过程,我从PHP传递3个参数(变量)。我已经验证了PHP代码正在获取并正确设置值,因此我专门使用在执行之前设置的参数。下面是我的存储过程代码。

问题是我试图将第3个Select语句的结果填充到table_in参数定义的表中,但返回0结果。我曾尝试一次将一个语句拼凑在一起,但遇到了lat,lng语句的问题。

如何正确修复此问题,以便接受参数输入并正确使用这些值并从存储过程中调用的已定义函数中插入适当的输出?

CREATE PROCEDURE `sp_store_code_ms1`(IN `store_code_in` VARCHAR(10), IN `table_in` VARCHAR(20), IN `range_in` INT(2))
BEGIN
    DECLARE cnt INT DEFAULT 0; 
    DECLARE lat DOUBLE DEFAULT 0;
    DECLARE lng DOUBLE DEFAULT 0;

    SELECT DISTINCT code 
    FROM `postal_code` AS `cnt`
    WHERE code = ('store_code_in')
    LIMIT 1;

    IF (`cnt` > 0) THEN 

        SELECT DISTINCT store_code AS `cnt2` 
        FROM `table_in` 
        WHERE STORE_CODE = `store_code_in` 
        LIMIT 1;

        IF (`cnt2` < 1) THEN 

            SELECT latitude, longitude INTO lat, lng 
            FROM `postal_code` 
            WHERE code = ('AB101AB');

            INSERT INTO `table_in` (`store_code`, `search_code`, `distance`) 
            SELECT ('store_code_in'), code
                , fn_haversine(`lat`, `lng`, latitude, longitude) AS `distance` 
            FROM `postal_code` 
            HAVING `distance` < `range_in`;

        END IF; 

    END IF;
END 

0 个答案:

没有答案