tiy Posted October 5, 2006 Report 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
bubu Posted October 5, 2006 Report Posted October 5, 2006 updeitu un selektu vienā kverijā tev diez neizdosies apvienot.. ja nu vienīgi storēto procedūru uzrakstot.
Roze Posted October 5, 2006 Report 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.
Delfins Posted October 5, 2006 Report 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)
Recommended Posts