sql >> Database teknologi >  >> RDS >> Mysql

MySQL stigende værdi

Ja:Brug en brugerdefineret 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 af stigning til @position er den værdi, der bruges til indsættelsen.

Rediger:

Du kan springe erklæringen af ​​variablen over ved at håndtere startværdien in-line:

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

Dette kan være særligt praktisk, når du udfører forespørgslen ved hjælp af en driver, der ikke tillader flere kommandoer (adskilt af semikolon).



  1. Konverter fra MySQL datetime til et andet format med PHP

  2. SQL Server Internals:Plan Caching Pt. I – Genbrug af planer

  3. Hibernate:hvad er forskellen mellem MySQLDialect og MySQLInnoDBDialect?

  4. Konfiguration af Pentaho Data Integration til at bruge Oracle Wallet til Oracle Cloud