sql >> Database >  >> RDS >> Mysql

INSERT INTO als aan de voorwaarde is voldaan

De INSERT verklaring heeft twee varianten:

INSERT INTO tableX
    (a, b, c, ...)
VALUES
    (1, 2, 3, ...) ;

en

INSERT INTO tableX
    (a, b, c, ...)
SELECT
    1, 2, 3
FROM
    ... ;             --- the same or another table or many tables

De dual is een systeemtabel met precies 1 rij. Het kan voor verschillende dingen worden gebruikt. Hier wordt het gebruikt, dus een VALUES (...) wordt herschreven als een SELECT ... waar we geen geschikte tabel hebben om in de FROM . te plaatsen clausule:

$query_land = "INSERT INTO `Sequence` (`num_arr`,`start`,`fin`,`way_id`) 
               SELECT '".$solution[$i][0]."','".$solution[$i][1]."',
                      '".$solution[$i][2]."','".$solution[$i][3]."'
               FROM dual 
               WHERE '".$solution[$i][0]."' IN (SELECT num_arr 
                                                FROM Schedule 
                                                WHERE num_arr<>'')";



  1. Selecteer n grootste waarden uit een tabel

  2. Zelf toetreden tutorial #10 op sqlzoo

  3. postgresql zonder ondersteuning voor parameterizd-query's

  4. Hoe de resultaten van de select-instructie correct naar het Csv-bestand te exporteren met behulp van de spool in de Oracle SQL-ontwikkelaar