Autor Zpráva
Chadas
Profil
Potřeboval bych poradit s příkazem pro hromadnou úpravu cen. Mám tabulku kde bych potřeboval pole CENA navýšit hodnotu 5. Laicky řečeno to vypadá asi takto:

Vyber tabulku "data_cenik" a ke všem hodnotám v poli "data_cena" které jsou menší než 200 připočti hodnotu 5.

Uvítal bych přídně i varianty podobné té kterou uvádím :) I když až uvidím ten příkaz tak si možné vzpomenu a už budu schopen i improvizovat.
Potřebuju ceny upravit na vzdáleném serveru. Nejdříve bych ti to ale radši vyzkoušel v praxi na lokálním disku na Wampserveru. Nerad bych zrušil data na webu:) Dík za pomoc.
juriad_
Profil *
UPDATE data_cenik SET data_cena = data_cena + 5 WHERE data_cena < 200;
Chadas
Profil
juriad:
Zkusím, díky moc. Abych se přiznal měl jsem představu že to bude vypadat nějak takhle : REPLACE ALL "data_cena" WHERE ..... :) To bych se natrápil formou pokus - omyl. Díky moc.


juriad:
Tak jsem to zkoušel ale bohužel to nefunguje :( Když zadám příkaz SELECT * FROM `zen_products` WHERE `products_price` < 200, filtr a příkaz bez problémů funguje. Upravil jsem příkaz podle skutečných hodnot (název pole a tabulky) takto UPDATE `zen_products` SET `products_price` = `products_price` + 5 WHERE `products_price` < 200 ale je to špatně. Možná je to pouze syntaktická chyba ale zkoušel jsem upravovat uvozovky ale nic nepomohlo. Tady je podrobný výpis chybového hlášení:

Chyba

Statická analýza:

Při analýze bylo nalezeno 9 chyb.

1.Unexpected beginning of statement. (near "UPDATE " at position 0)
2.Unexpected beginning of statement. (near "`zen_products`" at position 7)
3.Unexpected beginning of statement. (near "SET " at position 22)
4.Unexpected beginning of statement. (near "`products_price`" at position 26)
5.Unexpected beginning of statement. (near "`products_price`" at position 45)
6.Unexpected beginning of statement. (near "5" at position 64)
7.Unexpected beginning of statement. (near "WHERE " at position 66)
8.Unexpected beginning of statement. (near "`products_price`" at position 72)
9.Unexpected beginning of statement. (near "200" at position 91)


SQL dotaz: 

UPDATE `zen_products` SET `products_price` = `products_price` + 5 WHERE `products_price` < 200 

MySQL hlásí: Dokumentace 
#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 'UPDATE `zen_products` SET `products_price` = `products_price` + 5 WHERE `p' at line 1

Tady ještě pro pořádek tabulka s daty.

Kajman
Profil
Tipuji, že za update set a where je nedělitelná mezera. Zkuste v dotaze nahradit všechny mezery ručně mezerníkem.
juriad_
Profil *
Omlouvám se, mezera za každým velkým písmenem je nedělitelná. Ta cshack klávesnice mě jednou zabije, bestie.

Správně:
UPDATE `zen_products` SET `products_price` = `products_price` + 5 WHERE `products_price` < 200
Chadas
Profil
Takhle je to paráda. Teď už to funguje. Akorát se cena budou upravovat malinko jinak. Potřeboval bych upravit tento příkaz
UPDATE `zen_products` SET `products_model` = `products_model` + 5 WHERE LIKE '%Hlízy%'
Ceny by se měly upravit tak, aby se zvýšila cena o 5 Kč u všech položek kde se v tablulce v poli products_model vyskytuje slovo "Hlízy". Mělo by to potom upravit ceny u položek "Hlízy malé" i "Hlízy velké". Zkoušel jsem to sám ale ... :-( Ještě jednou všem moc díky.
Keeehi
Profil
Měl jsi to téměř dobře
UPDATE `zen_products` SET `products_price` = `products_price` + 5 WHERE `products_model` LIKE '%Hlízy%'
Chceš měnit cenu, tak to neupravuj a nechej tam products_price. Jen je potřeba ten products_model dodat před like.
Chadas
Profil
SUPER!! Díky moc. Uložím si to pro příště. Teď už mám nějaký vzor a s tím už se dá pracovat. Než se budu příště ptát, určitě vyzkouším pár variant nanečisto :) Ještě jednou děkuji. Málokdy se se stává, že mi v různých fórech někdo poradí. Většinou si problém nakonec vyřeším sám. Tady je to přece jenom jinak. Hezký den.

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: