Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja pierwszych liter w rekordach
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
maci4
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
Gapollo
  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-%'
mawwro
  1. UPDATE ginwe SET kod='4-' + SUBSTRING(LTRIM(kod),3,LEN(LTRIM(kod))-2) WHERE LEFT(LTRIM(kod),2)='d-'

trochę bezpieczniejszy kod
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.