Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Połączenie dwóch zapytań w mysql
Forum PHP.pl > Forum > Przedszkole
kasanowak
Głupi problem, ale nie radzę sobie z poprawnym skonstruowaniem jednego zapytania w bazie danych mysql. Mam dwa zapytania:
  1. UPDATE `tabela` SET `mtime` = ( SELECT REPLACE( `mtime` , '2011', '2008' )

i
  1. SELECT * FROM `tabela` WHERE aid < 56


Z tych dwóch zapytań chcę stworzyć jedno, tak aby zamieniało daną wartość tylko dla danych których aid jest mniejszy niż 56. Kombinowałem tak:
  1. UPDATE `tabela` SET `mtime` = ( SELECT REPLACE( `mtime` , '2011', '2008' ) FROM `tabela` WHERE aid < 56 )

i tak:
  1. UPDATE `tabela` SET `mtime` = ( SELECT REPLACE( `mtime` , '2011', '2008' ) WHERE aid < 56 )


Ale wywala błędy... Da się w ogóle te dwa zapytania skumulować w jedno ?wink.gif
Niktoś
Nie wiem czy to poprawi,ale masz zbędne ' , mianowicie powinno to wyglądać:
  1. UPDATE tabela SET mtime = ( SELECT REPLACE( mtime , '2011', '2008' ) WHERE aid < 56 )
ech to i tak ci nie zadziała bo w podzapytaniu brakuje from tabela:
  1. UPDATE tabela SET mtime = ( SELECT REPLACE( mtime , '2011', '2008' ) FROM tabela WHERE aid < 56 )
kasanowak
Informacje chcę uzyskać tylko z jednej tabeli, po poprawkach wciąż nie działa, jest taki błąd:
#1093 - You can't specify target table 'tabela' for update in FROM clause
To jest to zapytanie:
  1. UPDATE tabela SET mtime = ( SELECT REPLACE( mtime , '2011', '2008' ) FROM tabela WHERE aid < 56 )
Niktoś
Ok ,spróbuj jeszcze tak:
Cytat
UPDATE cpg15x_pictures SET mtime = ( SELECT REPLACE( mtime , '2011', '2008' ) as Moja FROM cpg15x_pictures WHERE aid < 56 )

Ech spojrzałem na replace i przekombinowane masz:
  1. UPDATE cpg15x_pictures SET mtime = REPLACE( mtime, '2011', '2008') WHERE aid < 56;
-to powinno zadziałać
kasanowak
Ten sam błąd :-)

Cytat(Niktoś @ 16.12.2011, 21:54:38 ) *
Ech spojrzałem na replace i przekombinowane masz:
  1. UPDATE cpg15x_pictures SET mtime = REPLACE( mtime, '2011', '2008') WHERE aid < 56;
-to powinno zadziałać

Działa :-) Faktycznie przekombinowałem, dzięki.
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.