Jump to content
php.lv forumi

Recommended Posts

Posted (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 by tiy
Posted

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.

Posted

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)

×
×
  • Create New...