sql >> Databasteknik >  >> RDS >> Mysql

SQL Infoga i tabellen nya rader för varje fält i samma tabell

I fall MySQL 8.0 eller senare kan du använda nästa fråga:

INSERT IGNORE INTO products
SELECT 
    id_product,
    143 as id_category,
    (
       SELECT MAX(position) 
       FROM products
       WHERE id_category = 143
     ) + 
     (row_number() over (order by id_product)) as position
FROM products
WHERE id_category = 12;

Resultat från

  1. Hur skickar man ett argument till ett PL/SQL-block i en sql-fil som heter med START i sqlplus?

  2. MySQL min och max för varje kolumn

  3. Android-enhetsanslutning med localhost-server

  4. Åtkomst nekad för användaren 'www-data'@'localhost – hur ska man hantera det?