tiy Posted October 5, 2006 Report Share Posted October 5, 2006 (edited) Ir tabula Tabulas datus mes salidzinam un ja ir lielaki par 80, tad dabu tani rindina taisam update,savadak, izvadat id. Ka to var izdarit, meginaju dazados veidos rada syntax error? SELECT IF(`lauks`)>80, UPDATE `tab1` SET value='xxx' WHERE id=`id`, //id no tab1 'id') FROM `tab1` Edited October 5, 2006 by tiy Link to comment Share on other sites More sharing options...
bubu Posted October 5, 2006 Report Share Posted October 5, 2006 updeitu un selektu vienā kverijā tev diez neizdosies apvienot.. ja nu vienīgi storēto procedūru uzrakstot. Link to comment Share on other sites More sharing options...
Roze Posted October 5, 2006 Report Share Posted October 5, 2006 Nafig tādas izvīrtības, ja to var panākt divos parastos kverijos (attiecīgi mainot secību kā mums vajag). 1. UPDATE table SET value = 'x' WHERE lauks > 80 2. SELECT id FROM table WHERE lauks <= 80 .. Un tā mēs būsim panākuši to pašu - updeitojuši ierakstus kur lauks ir > 80 un izvadījuši tos kur ir mazāks vai viendāds. Link to comment Share on other sites More sharing options...
Delfins Posted October 5, 2006 Report Share Posted October 5, 2006 Es vispār sāku brīnīties - šitie jaunie censoņi vispār negrib mācīties, nelasa nedz manuāļus, nedz noderīgas grāmatas (piem. `Mastering PHP and/or MYSQL/Postgre`). Imho šitādi SQL ir jāhavo `tā kā semečkas`, jeb 2+2 vienādojumi. Ja runā par konkrētu uzdevumu: sql = select .. while ( row .. ) { if (row.lauks > 80 ) IDarr[] = row.id; } sql = update tab1 where id IN (implode(IDarr)) , bet labāk izmantot Roze variantu - vispirms updeitojam, un tad rādam (bez izvirtībām) Link to comment Share on other sites More sharing options...
Recommended Posts