Autor Zpráva
spartan13
Profil
Dobrý den,
mám následující kód v mysql:

UPDATE sazky SET body=(6) WHERE (id='2')AND(tip='3')        // zde je vše v pořádku

 select round(sqrt( (select count(id) from sazky WHERE (id='2')) / (select count(id) from sazky WHERE (id='2')AND(tip='3')) )*10)  // zde také, vrátí int


ale při spojení:

UPDATE sazky SET body=(select round(sqrt( (select count(id) from sazky WHERE (id='2')) / (select count(id) from sazky WHERE (id='2')AND(tip='3')) )*10)) WHERE (id='2')AND(tip='3')
 


začne hlásit chybu (You can't specify target table 'sazky' for update in FROM clause)

pokud tento kód rozložím na dva, a nejdříve do proměnné @x přiřadím hodnotu a následně provedu update, vše je v pořádku. Ovšem, když tento kód pošlu přes php (mysql_query) tak se příkaz nevykoná, přičemž když stejný skript spustím "manuálně" je vše v pořádku.
Kajman_
Profil *
spartan13:
Ovšem, když tento kód pošlu přes php (mysql_query) tak se příkaz nevykoná

A používáte dva příkazy mysql_query?
TomášK
Profil
viz dokumentace: Currently, you cannot update a table and select from the same table in a subquery. - což vlastně říká i ta chybová hláška.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0