Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: błąd w zapytaniu
Forum PHP.pl > Forum > Bazy danych > MySQL
BugsBunny
  1. INSERT INTO `kategorie` (`nazwa`,`liczba_wpisow`, `miejsce`) VALUES ('nazwa','0','(SELECT `miejsce` FROM `kategorie` ORDER BY `miejsce` ASC LIMIT 1)')


W pole miejsce wstawia 0 , a gdy wpisze to zapytanie z SELECT oddzielnie to zwaraca normalnie najwiekszą wartość. CO jest nie tak?
Kicok
Apostrofy.


  1. '(SELECT `miejsce` FROM `kategorie` ORDER BY `miejsce` ASC LIMIT 1)'

jest traktowane jako zwykły napis i podczas konwersji na INT zamieniane na 0
BugsBunny
ale takie zapytanie
  1. INSERT INTO `kategorie` (`nazwa`,`liczba_wpisow`, `miejsce`) VALUES ('nazwa','0',(SELECT `miejsce` FROM `kategorie` ORDER BY `miejsce` ASC LIMIT 1))


wyrzuca mi błąd

#1093 - You can't specify target table 'kategorie' for update in FROM clause

Chyba będę to musiał rozbić na dwa zapytania sad.gif
Kicok
No jak widać nie można podczas dodawania wierszy do tabeli jednocześnie wykonywać podzapytań na tej tabeli.

Nie jestem pewien do czego ci jest potrzebna ta kolumna `miejsce`, ale może problem rozwiąże ustawienie jej auto_incrementa?
joebezucha
Zrób tak żeby nie uzywać slowa Values zawierajacego jakies wartosci ale te "sztywne" wartosci podaj dopiero w zapytaniu SELECT

  1. INSERT INTO `kategorie` (`nazwa`,`liczba_wpisow`, `miejsce`) SELECT 'TWOJA NAZWA' AS 'nazwa', 'TWOJA_LICZBA' AS 'liczba_wpisow', `miejsce` FROM `kategorie` ORDER BY `miejsce` ASC LIMIT 1


A jeżli szukasz maksymalnego miejsca to lepiej użyj funkcji MAX() niż limituj i porządkuj:

  1. INSERT INTO `kategorie` (`nazwa`,`liczba_wpisow`, `miejsce`) SELECT 'TWOJA NAZWA' AS 'nazwa', 'TWOJA_LICZBA' AS 'liczba_wpisow', MAX(miejsce) AS 'miejsce' FROM `kategorie`



tak powinno dzialac... chyba;)

Pamiętaj że zapytanie SELECT nie musi zawsze pobierac danych z bazy danych:) np.

  1. SELECT 0 AS 'id', 'jajo' AS 'nazwa'


ps. nie wiem czy nadając nazwe kolumnie poprzez 'AS' można użyć ` z ' napewno zadziala
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.