sql >> データベース >  >> RDS >> Mysql

SELECTステートメントからのMySQLストアドプロシージャ変数

    いくつか修正し、代替の選択を追加しました-必要に応じて削除します。

    DELIMITER |
    
    CREATE PROCEDURE getNearestCities
    (
    IN p_cityID INT -- should this be int unsigned ?
    )
    BEGIN
    
    DECLARE cityLat FLOAT; -- should these be decimals ?
    DECLARE cityLng FLOAT;
    
        -- method 1
        SELECT lat,lng into cityLat, cityLng FROM cities WHERE cities.cityID = p_cityID;
    
        SELECT 
         b.*, 
         HAVERSINE(cityLat,cityLng, b.lat, b.lng) AS dist 
        FROM 
         cities b 
        ORDER BY 
         dist 
        LIMIT 10;
    
        -- method 2
        SELECT   
          b.*, 
          HAVERSINE(a.lat, a.lng, b.lat, b.lng) AS dist
        FROM     
          cities AS a
        JOIN cities AS b on a.cityID = p_cityID
        ORDER BY 
          dist
        LIMIT 10;
    
    END |
    
    delimiter ;
    


    1. MySQLマッチの問題

    2. 動的SQLのDDL/SCLステートメントでバインド変数を使用できないのはなぜですか?

    3. 無料で広く使用されているトップ18のオープンソースNoSQLデータベース

    4. キー->値データ用の優れた高速永続ストレージオプションは何ですか?