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

Cập nhật SQl từ bảng Tên ngẫu nhiên

Đây là truy vấn:

update TestNames t cross join
       rndnames r
    set t.fname = r.FirstName,
        t.lname = r.LastName
    where r.ID = floor(1+(rand()*600));

Nó chỉ cập nhật một hàng trong testnames khi id ngẫu nhiên được chọn bởi biểu thức khớp với một id trong bảng. Là id các giá trị trong rndnames tất cả đều được điền?

Nếu bảng của bạn không lớn lắm và nó có id , đây là một cách tiếp cận khác:

update TestName t join
       (select t.*,
               (select id from rndnames order by rand() limit 1) as rndid
        from testname t
       ) tr
       on t.id = tr.id join
       rndnames r
       on t.rndid = r.id
    set t.fname = r.FirstName,
        t.lname = r.LastName;

CHỈNH SỬA:

Tôi nghĩ điều này cũng sẽ hoạt động:

update TestNames t cross join
       rndnames r
    set t.fname = r.FirstName,
        t.lname = r.LastName
    where r.ID = (select id
                  from rndnames
                  order by rand()
                  limit 1
                 );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tìm vị trí mySQL my.cnf

  2. Ghép kênh Ruby / MySQL Lỗi:gói không hợp lệ:số thứ tự không khớp

  3. Làm thế nào để có được bản ghi khác biệt từ bảng mysql?

  4. Trường MySQL ORDER BY Date không có định dạng ngày tháng

  5. Gọi thủ tục được lưu trữ trong codeigniter