ray Posted January 21, 2008 Report Posted January 21, 2008 (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 January 21, 2008 by ray
andrisp Posted January 21, 2008 Report Posted January 21, 2008 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 ?
ray Posted January 21, 2008 Author Report Posted January 21, 2008 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
Aleksejs Posted January 21, 2008 Report Posted January 21, 2008 (edited) Manuprāt, atdalot ar semikolu vaicājumus - tos varēja iekraut vienā mysql_query izsaukumā. Edited January 21, 2008 by Aleksejs
Vebers Posted January 21, 2008 Report Posted January 21, 2008 Multiple-table syntax: UPDATE [LOW_PRIORITY] [iGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_condition]
andrisp Posted January 21, 2008 Report Posted January 21, 2008 http://www.google.com/search?hl=lv&q=mysql+procedures Vai arī kas tev īsti nav skaidrs ?
Aleksejs Posted January 21, 2008 Report Posted January 21, 2008 Veber, bet viņam jau conditioni ir vairāki...
Vebers Posted January 21, 2008 Report Posted January 21, 2008 Aleksej, un? CASE ~ piemērs: UPDATE Table1 SET foo = CASE WHEN id=1 THEN 1 WHEN id=2 THEN 2 END
Gints Plivna Posted January 21, 2008 Report Posted January 21, 2008 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
Delfins Posted January 21, 2008 Report Posted January 21, 2008 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.
ray Posted January 21, 2008 Author Report Posted January 21, 2008 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
andrisp Posted January 21, 2008 Report Posted January 21, 2008 Vebers, esi pārliecināts, ka šis apdeitos vairākus ierakstus reizē ? UPDATE Table1 SET foo = CASE WHEN id=1 THEN 1 WHEN id=2 THEN 2 END
Vebers Posted January 21, 2008 Report Posted January 21, 2008 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.
ray Posted January 21, 2008 Author Report Posted January 21, 2008 kurš ir optimālāks variants? Vebera variants vai MySQL procedūras?
Recommended Posts