Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aktualizacja pierwszych liter w rekordach
maci4
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 23.08.2005

Ostrzeżenie: (0%)
-----


Witam
Mam problem z aktualizacją rekordów. Muszę w kilku tysiącach rekordów zamienić "d-" na "4-"

Próbowałem tego zapytania, jednak ono nie działa:
  1. UPDATE dbo.ginwe
  2. SET kod='4-%'
  3. WHERE kod='d-%'

Prosiłbym o pomoc jak zmienić pierwsze dwa znaki w każdym rekordzie zaczynającym się od "d-"

Wiem, że mogę to wyciągnąć za pomocą substring, ale jak zamienic?
  1. SELECT SUBSTRING(kod, 1,2)
  2. FROM dbo.ginwe


Ten post edytował maci4 17.12.2009, 12:34:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Gapollo
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 5
Dołączył: 2.11.2006
Skąd: 52.259 °N, 21.020 °E

Ostrzeżenie: (0%)
-----


  1. UPDATE ginwe
  2. SET kod='4-' + SUBSTRING(kod,3,255)
  3. WHERE LEFT(kod,2)='d-'


albo (jeśli kod jest jakoś zestrukturyzowany i masz pewność, że 'd-' występuje tylko na początku)
  1. [/SQL]
  2. [sql]UPDATE ginwe
  3. SET kod=REPLACE(kod,'d-','4-')
  4. WHERE kod LIKE 'd-%'


zauważ też różnicę między zapytaniami:
  1. SELECT * FROM ginwe WHERE kod='d-%'
  2. SELECT * FROM ginwe WHERE kod LIKE 'd-%'
Go to the top of the page
+Quote Post
mawwro
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 10.12.2009

Ostrzeżenie: (0%)
-----


  1. UPDATE ginwe SET kod='4-' + SUBSTRING(LTRIM(kod),3,LEN(LTRIM(kod))-2) WHERE LEFT(LTRIM(kod),2)='d-'

trochę bezpieczniejszy kod
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 05:10