Autor Zpráva
ybznek
Profil
Potřebuju prohodit 2 hodnoty na různých řádcích.
Je to asi takto
batoh {
prihradka1:svačina
prihradka2:nůž
}


přihrádky jsem přirovnal k řádkům a potřebuju prohodit jejich obsah, ideálně bez využití klienta jako odkládací plochy

jediné řešení, co mě napadlo je s využitím 3. řádku
zde je ČÁST kódu :
mysql_query("UPDATE  `player_item` SET  `id_item` =  (select id_item from `player_item` where id=3 limit 1) WHERE  id_type = 11 and id_player=$player;");

ale vyhazuje to You can't specify target table 'player_item' for update in FROM clause

Nenapadá vás, jak ty 2 hodnoty prohodit?
tany
Profil *
pokud toto chcete dělat často, tak bych si na to napsal funkci (popř. proceduru)

tady je jednoduchý příklad procedury - update,select a definování proměnné vám na prohození stačí
DROP PROCEDURE IF EXISTS `procedura`;
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `procedura`(
IN vstupni_promenna varchar(40),
OUT vystupni_promenna int(5)
)
BEGIN
declare promenna1 varchar(40)
select neco from neco into promenna1 
update tabulka set sloupec = promenna1 where neco =neco

END//
DELIMITER ;


volání procedury se dělá takto :
call procedura(proměnné)
ybznek
Profil
Děkuji, zkusím

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