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

Thủ tục lưu trữ MYSQL cho các biến cập nhật là 0

Vấn đề là tham số thủ tục có cùng tên với một cột trong bảng. Khi bạn tham khảo propertyid trong các truy vấn, nó sử dụng cột, không phải tham số. Tên cột và tên biến không phân biệt chữ hoa chữ thường, vì vậy bạn đánh vần một trong số chúng PropertyID không quan trọng và propertyId khác .

Sử dụng một tên khác cho tham số, ví dụ:p_propertyId

Ngoài ra, không cần hai truy vấn, bạn có thể thực hiện trong một truy vấn với JOIN .

UPDATE sales.florida AS s
CROSS JOIN (
    SELECT *
    FROM annuals.florida
    WHERE propertyId = p_propertyId
    LIMIT 1) AS a
SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
WHERE s.PROPERTYUNIQUEID = p_propertyId

Lưu ý rằng sử dụng LIMIT không có ORDER BY có nghĩa là hàng được chọn sẽ không thể đoán trước được.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dữ liệu MySQL - Cách tốt nhất để triển khai phân trang?

  2. Chọn một giá trị từ một nhóm dựa trên thứ tự từ các cột khác

  3. Cách dừng truy vấn mysql đang chạy

  4. JDBC luôn kiểm tra hàng cuối cùng của bảng MySQL?

  5. Phương pháp hay nhất cho hệ thống Đặt lịch / Đặt hẹn PHP / MySQL