sql >> Database >  >> RDS >> Mysql

MySQL oplopende waarde

Ja:gebruik een door de gebruiker gedefinieerde variabele :

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;

Het resultaat van verhoging naar @position is de waarde die wordt gebruikt voor de invoeging.

Bewerken:

U kunt de declaratie van de variabele overslaan door de initiële waarde in-line af te handelen:

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

Dit kan met name handig zijn bij het uitvoeren van de query met een stuurprogramma dat geen meerdere opdrachten toestaat (gescheiden door puntkomma's).



  1. Resultaat van dynamische SQL in een variabele voor sql-server krijgen

  2. Hoe weet ik welke partitie zal worden gebruikt in Postgres hash-partitionering?

  3. ERROR 1130 (HY000):Host '' mag geen verbinding maken met deze MySQL-server

  4. Oracle verbinden met SQL Server vanuit Windows