Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

kā var ar vienu pieslēgšanos pie datubāzes izpildīt šādus vaicājumus?

UPDATE lauks SET value = "vertiba" WHERE id = 1
UPDATE lauks SET value = "cita_vertiba" WHERE id = 2

kopā tur ir kādi 8 šādi vaicājumi, tāpēc man liekas, ka vislabāk būtu to visu datubāzē atjaunot ar vienu pieslēgšanos, lai lieki nenoslogotu DB.

Edited by ray
Posted

Man liekas, ka tā vienkārši apvienot nevarēsi gan.

 

Ja izmantosi mysqli php paplašinājumu, tad var vairākus kverijus vienē reizē nosūtīt.

 

Varbūt ir iespējams šos kverijus ievietot iekš procedūras, kurai tu tikai padosi parametrus ?

Posted
Varbūt ir iespējams šos kverijus ievietot iekš procedūras, kurai tu tikai padosi parametrus ?

 

paskaidro lūdzu mazliet sīkām, īsti šo neizprotu

Posted

Multiple-table syntax:

UPDATE [LOW_PRIORITY] [iGNORE] table_references
   SET col_name1=expr1 [, col_name2=expr2 ...]
   [WHERE where_condition]

Posted

Aleksej, un? CASE

 

 

~ piemērs:

UPDATE Table1
  SET foo = CASE 
		WHEN id=1 THEN 1 
		WHEN id=2 THEN 2 
	 END

Posted
kā var ar vienu pieslēgšanos pie datubāzes izpildīt šādus vaicājumus?

Visās datubāzēs, kas saniegušas zināmu brieduma pakāpi :) tai skaitā arī pēdējās MySQL versijās ir tāda lieta kā saglabātās procedūras un funkcijas, kas realizē biznesa loģiku bāzē nevis baksta miljons SQL teikumu no klienta :)

 

Protams, ka procedūras vajag kaut kā vispārināt un rakstīt atkarīgas no ievadparametriem kā jau tas parasti tiek visur darīts.

 

Gints Plivna

Posted
ar vienu pieslēgšanos, lai lieki nenoslogotu DB.

defaultā jau vienmēr ir viena pieslēgšanās ;) tas tā.

8 SQL nav nekas traks... ir strādāts, kad updeito 100.000.

Posted
8 SQL nav nekas traks

gribas arī iemācīties mazliet nākotnes vārdā, ja būs vajadzība pēc vairāk nekā 8 pieprasījumiem :)

 

Vai arī kas tev īsti nav skaidrs?

par procedūrām nekas nav skaidrs, bet tagad lasu kas tas par zvēru. kad izlasīšu un būs jautājumi, tad uzdošu

Posted

andrisp, jā.

 

UPDATE Table1
SET foo = CASE
  WHEN id=1 THEN 'one'
  WHEN id=2 THEN 'two'
END
WHERE id in(1, 2)

 

Tas where ir, domāts lai nepārrakstītu pāri visiem pārējiem ierakstiem.

×
×
  • Create New...