Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błędne zapytanie na delete - warning mysql
pero
post 16.07.2012, 12:55:31
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 17.02.2007

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


Witam
mam takie zapytanie :
  1. DELETE FROM url u WHERE u.Url IN
  2. (
  3. SELECT u2.Url FROM
  4. (
  5. SELECT DISTINCT PageErrorUrl
  6. FROM robot_message
  7. WHERE MessageType='UrlToRemove'
  8. LIMIT 50
  9. ) AS A,
  10. url u2
  11.  
  12. WHERE u2.indexeddate IS NULL
  13. AND u2.url=A.PageErrorUrl
  14.  
  15. )


niestety ciagle zwraca jakis warning :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'u where u.Url in ( select u2.Url from ( SELECT DISTINCT Pa' at line 1

nie wiem dlaczego, wydaje się ze samo zapytanie jest ok.
prosze o pomoc.

ok problem rozwiazany
dla potomnych : bug mysql - nie mozna robic przy delete IN - trzeba znalezc alternatywne zapytanie bez IN.
Go to the top of the page
+Quote Post
bpskiba
post 16.07.2012, 15:15:57
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Mylisz się

Stosowanie IN jest całkowicie dozwolone i prawidłowe w zapytaniach typu DELETE


Twoje natomiast nie zostało wykonane gdyż są w nim przynajmniej dwa błędy. Nie napiszę jak powinno wyglądać, gdyż nie wiem co powinno zostać usunięte. Zaznaczam błędne fragmenty
DELETE FROM url u WHERE u.Url IN
(
SELECT u2.Url FROM
(
SELECT DISTINCT PageErrorUrl
FROM robot_message
WHERE MessageType='UrlToRemove'
LIMIT 50
) AS A,
url u2

WHERE u2.indexeddate IS NULL
AND u2.url=A.PageErrorUrl


)

Ten post edytował bpskiba 16.07.2012, 15:18:39
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.08.2025 - 12:19