Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Các biến thủ tục được lưu trữ từ các câu lệnh SELECT

Đã sửa một số thứ và thêm một lựa chọn thay thế - xóa nếu thích hợp.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để tự động tạo trình kích hoạt khi tạo bảng mới trong MySQL không?

  2. PHP - uniqid (, true) so với uniqid () + mt_rand ()

  3. Nhận thông báo SQLEXCEPTION trong thủ tục MySQL 5.5.x

  4. Các JOIN trong SQL tốn kém như thế nào? Và / hoặc, đánh đổi giữa hiệu suất và bình thường là gì?

  5. Tuyên bố chuẩn bị trước của MySQL - Cách lặp qua