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

Memperbarui kolom sehingga berisi posisi baris

Ini seharusnya berhasil

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;

Tapi saya lebih suka menerapkan ini terlebih dahulu, untuk menghapus variabel yang ditentukan pengguna

set @row_number:=0;

Ditambahkan oleh Mchl:

Anda dapat melakukannya dalam satu pernyataan seperti ini

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. Perlu Mengonversi Kolom menjadi Baris di MYSQL

  2. Apa cara yang disarankan untuk terhubung ke MySQL dari Go?

  3. Kunci Asing Beberapa Kolom:Setel satu kolom ke Null ON DELETE alih-alih semua

  4. MySQLi - mendeklarasikan variabel setelah bind_param?

  5. Permintaan MySQL:Menggunakan UNION dan mendapatkan nomor baris sebagai bagian dari SELECT