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

Đang cập nhật cột để nó chứa vị trí hàng

Điều này sẽ hoạt động

update 
content,
(
  select 
  @row_number:=ifnull(@row_number, 0)+1 as new_position,
  ContentID 
  from content
  where CategoryID=1
  order by position
) as table_position
set position=table_position.new_position
where table_position.ContentID=content.ContentID;

Nhưng tôi muốn áp dụng điều này trước tiên, cho biến chưa đặt do người dùng xác định

set @row_number:=0;

Được thêm bởi Mchl:

Bạn có thể làm điều đó trong một câu lệnh như sau

update 
content,
(
  select 
  @row_number:=ifnull(@row_number, 0)+1 as new_position,
  ContentID 
  from content
  where CategoryID=1
  order by position
) as table_position,
(
  select @row_number:=0
) as rowNumberInit
set position=table_position.new_position
where table_position.ContentID=content.ContentID;


  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ỗi (gần BẬT ở vị trí 25) khi nhập Bảng cho WORDPRESS (Lỗi khóa ngoại)

  2. Cách truy vấn soundex () trong mysql

  3. chuyển đổi danh sách thành chuỗi để chèn vào sql của tôi trong một hàng trong liệu pháp python

  4. Chuyển đổi hàng thành tiêu đề trong MYSQL

  5. Mã hóa C # Mysql UTF8