Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Menyimpan variabel prosedur dari pernyataan SELECT

Memperbaiki beberapa hal dan menambahkan pilihan alternatif - hapus yang sesuai.

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. docker-compose:menginisialisasi ulang MySQL db setiap saat

  2. Kesalahan fatal:Silakan baca bagian Keamanan dari manual untuk mengetahui cara menjalankan mysqld sebagai root

  3. Bagaimana cara melakukan mysqldump tanpa prompt kata sandi?

  4. Menyimpan konten array PHP dalam database MySQL

  5. Bagaimana cara menghitung jumlah instance dari setiap ID kunci asing dalam sebuah tabel?