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

INDSÆT I, hvis betingelsen er opfyldt

INSERT erklæringen har to variationer:

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

og

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

dual er en systemtabel med præcis 1 række. Den kan bruges til forskellige ting. Her bruges det så en VALUES (...) er omskrevet som en SELECT ... hvor vi ikke har nogen passende tabel at sætte i FROM klausul:

$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. Oracle Update Query ved hjælp af Join

  2. Skinner - hvordan man gemmer store tal som 100000076685963

  3. MySQL rollback på MyISAM-motoren

  4. Hvad er SQL Injection?