2017-07-19 41 views
-1

我有以下形式的方法:MYSQL:如何選擇語句列值傳遞到功能

DELIMITER // 
create procedure cl.getcoords(lat FLOAT(15,12), lon FLOAT(15,12), distance int) 
    BEGIN 


    declare tlat FLOAT(15,12); 
    declare tlon FLOAT(15,12); 
    declare tcoslat FLOAT(20,16); 
    SELECT lat, lon, cos_lat into tlat, tlon, tcoslat FROM cl.mrkrs WHERE cl.getcoordsdistance(lat, lon, tlat, tlon, tcoslat, distance) IS TRUE LIMIT 100; 
    END // 
DELIMITER ; 

我沒有得到任何結果,當我把這個過程。什麼做錯了?

+0

哪些數據是參與?爲什麼這是一個存儲過程?你有沒有看過[MySQL Spatial Extensions](https://dev.mysql.com/doc/refman/5.7/en/spatial-extensions.html)? – tadman

+0

可能沒有一個記錄匹配哪個標準。我們無法根據問題說明原因。 – Shadow

+0

緯度和經度都是緯度和經度,我無法訪問數據庫模式以進行任何更改。 – BoCode

回答

0

我終於做了以下得到什麼我一直在尋找:

DELIMITER $$ 
CREATE DEFINER=`root`@`localhost` PROCEDURE `getcoords`(lat FLOAT(15,12), lon FLOAT(15,12), distance int) 
BEGIN 


-- declare tlat FLOAT(15,12); 
-- declare tlon FLOAT(15,12); 
-- declare tcoslat FLOAT(20,16); 
    SET @s = CONCAT('SELECT lat , lon , cos_lat FROM cl.mrkrs WHERE cl.getcoordsdistance(',lat,',' ,lon,', lat, lon, cos_lat,',distance,') IS TRUE LIMIT 100'); 
    prepare stmt1 from @s; 
    execute stmt1; 
    deallocate prepare stmt1; 

    END$$ 
DELIMITER ; 
0

你可以通過這樣的 -

SELECT "abc" AS column1 FROM dual;