sql >> Databasteknik >  >> RDS >> Mysql

MySQL-ökande värde

Ja:Använd en användardefinierad variabel :

SET @position := 0; -- Define a variable
INSERT INTO products
SELECT id_product, id_category, name, (@position := @position + 1)
FROM db2.products
WHERE id_category = xxx;

Resultatet av inkrement till @position är värdet som används för infogningen.

Redigera:

Du kan hoppa över deklarationen av variabeln genom att hantera det initiala värdet in-line:

...
SELECT ..., (@position := ifnull(@position, 0) + 1)
...

Detta kan vara särskilt praktiskt när du kör frågan med en drivrutin som inte tillåter flera kommandon (separerade med semikolon).



  1. Villkorssortering i MySQL?

  2. Hur man använder SQL Server AlwaysOn-funktioner

  3. SQL-dialekten är inte konfigurerad (Phpstorm)

  4. SQL - Ta bort parentes från telefonnummer