sql >> Databáze >  >> RDS >> Mysql

Aktualizace sloupce tak, aby obsahoval pozici řádku

To by mělo fungovat

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;

Ale raději bych to použil jako první, na zrušení nastavení uživatelem definované proměnné

set @row_number:=0;

Přidal Mchl:

Můžete to udělat jedním příkazem, jako je tento

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. Kolik textu UTF-8 se vejde do textového pole MySQL?

  2. Začínáme s Oracle SQL Developer na MacOSX

  3. Vytvořte uloženou funkci MySQL s dynamickým počtem argumentů

  4. Příkaz aktualizace Pythonu MYSQL