Jump to content
php.lv forumi

Qury ar if un update


tiy

Recommended Posts

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 by tiy
Link to comment
Share on other sites

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

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

×
×
  • Create New...