Autor | Zpráva | ||
---|---|---|---|
ybznek Profil |
#1 · Zasláno: 8. 5. 2011, 01:25:58
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 * |
#2 · Zasláno: 8. 5. 2011, 23:18:09
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 |
#3 · Zasláno: 10. 5. 2011, 09:53:54
Děkuji, zkusím
|
||
Časová prodleva: 13 let
|
0