Skocz do zawartości
Waskijestem

[SQL] Update dla zapytania

Rekomendowane odpowiedzi

Cześć,

 

Od razu przejdę do rzeczy. Zapytanie SELECT:

SELECT ID, NAME, CONTENT

FROM PLIKI

WHERE NAME LIKE '%.pdf'

 

CONTENT to xml:

<><>INFO O FORMACIE</><>Storage=1</><>ID=852321456</><>NAZWA=nazwa.pdf</><>Metadane="Plik:nazwa.pdf ID:852321456"</></>

 

Jak utworzyć UPDATE aby dla każdego wpisu z SELECT móc zmienić CONTENT?

UPDATE PLIKI

 

SET CONTENT = '<><>INFO O FORMACIE</><>Storage=1</><>ID=' TUTAJ ID '</><>NAZWA=' TUTAJ NAZWA '</><>Metadane="Plik:' TUTAJ NAZWA ' ID:' TUTAJ ID '</></>'

 

WHERE NAME LIKE '%.pdf'

 

Wrzucić SELECT w środek? Może funkcja - ale jak ją napisać?

 

EDIT

MS SQL 2014

Edytowane przez Waskijestem

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Formatuj kod, bo się czytać tego nie da. Możesz użyć podzapytania:

 

UPDATE PLIKI SET ...
WHERE ID IN (
 SELECT ID
 FROM PLIKI
 WHERE NAME LIKE '%.pdf'
)

Edytowane przez Karister

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie rozumiem problemu. Przeklej where z selecta do update'a po prostu np.

UPDATE PLIKI
SET CONTENT = 'DUPA'
WHERE NAME LIKE '%.pdf'

 

--- edit ---

A chyba rozumiem, chodzi o coś w rodzaju:

UPDATE PLIKI
SET CONTENT = 'cośtam<>NAZWA='''+NAME+'''<>ID='''+ID+'''<>cośtam'
WHERE NAME LIKE '%.pdf'

Tak na szybko:

1. Wewnątrz SET możesz używać kolumn i funkcji, tak samo jaj wewnątrz WHERE i SELECT

2. Do sklejania napisów mssql używa operatora +. jeżelo chcesz użyc liczby być może będziesz musiał ją wcześniej zamienić na napis, np przez CONVERT

3. Jeżeli wewnątrz napisu chcesz użyć ' musisz go zamienić na podwójny. Więc np. z

Właśnie przeczytałem '50 Twarzy Greya'

robi się

'Właśnie przeczytałem ''50 Twarzy Greya'''

Edytowane przez 209458

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dziękuję za odpowiedzi, zrobiłem tempową tabelę z CONTENT i ID i później połączyłem w UPDATE.

 

Dopiero po zrobieniu dowiedziałem się, że ta kolumna powstała tylko przy imporcie plików i nie trzeba jej edytować - chociaż zmiany w CONTENT przy sprawdzaniu dostępności plików mają już duże znaczenie.

 

@209458 dziękuję za edit ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...