sql >> Database >  >> RDS >> Mysql

Zend Db / Mysql - Invoegen met Select

Mijn oplossing (met behulp van Zend) was om de tabel te VERGRENDELEN, vervolgens het item_nummer op te vragen, het resultaat toe te voegen aan de invoegquery, de tabel in te voegen en te ONTGRENDELEN. U kunt als volgt VERGRENDELEN en ONTGRENDELEN:

$sql = "LOCK TABLE items WRITE";
$this->getAdapter()->query($sql);

//run select to get last item_number
//append result to insert array
//insert

$sql = "UNLOCK TABLES";
$this->getAdapter()->query($sql);

Een andere manier is om de query zo te schrijven dat de waarde tijdens het invoegen wordt geselecteerd. Hier is een voorbeeld:

$sql = INSERT INTO items (item_id, item_family, item_name, item_number) 
              VALUES (item_id, item_family, item_name, (SELECT item_number FROM... )+1);
$this->getAdapter()->query($sql);

Meer info over dit soort zoekopdrachten in MySQL Web



  1. TSQL:een weergave maken die toegang heeft tot meerdere databases

  2. MySql SELECT AS - Voeg alle veldnamen toe

  3. CASE-prestaties in MySQL?

  4. Hoe de waarden van een kolom in SQL optellen?