Jump to content
php.lv forumi

SQL update ar limitu


Sasa

Recommended Posts

  • Replies 37
  • Created
  • Last Reply

Top Posters In This Topic

UPDATE temp_izmeri SET temp_izmeri.img_url = "1"
WHERE (((temp_izmeri.Tips)=(SELECT TOP 1 temp_izmeri.Tips FROM temp_izmeri WHERE temp_izmeri.Tips = "Figurala_f")));

 

šāds SQL's nostra'dā bet updeitojas visi laiki ar Figurala_f.

Var iztaisīt Select pirms update?

Link to comment
Share on other sites

Kautkāds ārprātīgs tev tas kverijs... Iekavu arī dafiga.

Tu tur esi uzrakstījis updeitot visus ierakstus, kuriem Tips lauka vērtība ir "Figurala_f". To var izdarīt daudz vienkāršāk:

UPDATE temp_izmeri SET temp_izmeri.img_url = "1" WHERE temp_izmeri.Tips = "Figurala_f"

Link to comment
Share on other sites

Tu acīmredzot nesaproti kā tas SQL kverijs izpildās, kuru uzrakstīji.

Vispirms izpilda šo daļu: (SELECT TOP 1 temp_izmeri.Tips FROM temp_izmeri WHERE temp_izmeri.Tips = "Figurala_f").

Tā tiešām atgriež tikai vienu ierakstu - konkrētās tabulas Tips lauka vērtību, kura saturs ir "Figurala_f" - tātad atgriež vienu stringu "Figurala_f".

Vai saproti cik bezjēdzīgi ir selektēt ieraksta vērtību, kuru jau tu zini?

 

Tagad tiek izpildīts tas UPDATE kverijs: UPDATE temp_izmeri SET temp_izmeri.img_url = "1" WHERE (((temp_izmeri.Tips)=xxxx)),

kur xxxx vietā tiek ielikts iepriekš atrastais strings. Rezultātā sanāk, ka tiek izpildīts šāds kverijs: UPDATE temp_izmeri SET temp_izmeri.img_url = "1" WHERE (((temp_izmeri.Tips)="Figurala_f")); Tas ir tieši tas, ko es uzrakstīju.

 

Ja jau tu gribi updeitu veikt vienam konkrētam ierakstam, tad tam ir jāizmanto primārās atslēgas, nevis maģiskis Tips lauks, kurš var atkārtoties:

UPDATE temp_izmeri SET img_url = "1" WHERE id = 123

Link to comment
Share on other sites

bet ko darīt, ja man nav tieši šī ID lauka šaj tabulai kuru vēlos updeitot, man tas ID lauks atsijājās, tad kad grupēju vienādos ierakstus datubāzē! Vai var kaut kā automātiski pielikt ID lauku tabulai kurai tā tā nav?

 

šādi es izveidoju to tabulu kuru vēlos updeitot:

SQL_tbl_fig_det = "SELECT Query3_fig.Garums, Query3_fig.MEL_1, Query3_fig.ABS_1, Query3_fig.Platums, Query3_fig.MEL_2, Query3_fig.ABS_2, Query3_fig.izma, Query3_fig.Tips, Query3_fig.img_url, '" & lamin_kods_k(0) &"' AS kods, '" & lamin_kods_k(2) &"' AS biezums INTO tbl_fig_det FROM Query3_fig GROUP BY Query3_fig.Garums, Query3_fig.MEL_1, Query3_fig.ABS_1, Query3_fig.Platums, Query3_fig.MEL_2, Query3_fig.ABS_2, Query3_fig.izma, Query3_fig.Tips, Query3_fig.img_url, 'kods', 'biezums' HAVING (((Query3_fig.Tips)='Figurala_k') OR ((Query3_fig.Tips)='Figurala_f'));"

 

edit:

 

šādi varētu pielikt jaunu kolonu tabulai?

ALTER TABLE myTable ADD COLUMN myAutoNum COUNTER

 

tik nesaprotu kā šis strādā!

 

edit:

Tagad sanāca pievienot jaunu kolonu ar unikālu ID (autoumerācija), tagad itkā vajadzētu sanāk updeits tikai vienam konkrētām ierakstam. Tik es sākumā nezināšu kāds ID ir piešķirts! Laikam vajadzēs nolasīt ir ID lauka vērtību un tad to likt iekšā UPDATE querijā! :)

Edited by Sasa
Link to comment
Share on other sites

  • 2 weeks later...

×
×
  • Create New...