| Autor | Správa |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Ut 15.11.11 21:48 |   |
Potreboval by som urobť taký update kde sa hodnota prepíše inou hodnotu z tej iste tabuľky.
Asi takto:
| kód: | | update table set aaa=(select aaa from table where id=2) where id=1 |
Ale ako som sa dočítal v manuály: "Another restriction is that currently you cannot modify a table and select from the same table in a subquery."
Ale ako to teda urobiť??? |
| |
    |
 |
walther
 Užívateľ
 Založený: 24.01.2008 Príspevky: 10194 Bydlisko: Bratislava Vek: 24
 | Zaslal: Ut 15.11.11 21:51 |   |
Záleží od toho... Potrebuješ to urobiť čisto v databáze? (nikde nevidím, o akú db vlastne ide) Alebo to riešiš pri nejakej webovej/win aplikácii? |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Ut 15.11.11 21:58 |   |
Je to mysql...
A ide mi práve o to, či to ide napísať, ako jeden sql dotaz do scriptu. Napadá ma temporary table ,ale to momentálne neviem napísať... |
| |
    |
 |
walther
 Užívateľ
 Založený: 24.01.2008 Príspevky: 10194 Bydlisko: Bratislava Vek: 24
 | Zaslal: Ut 15.11.11 22:09 |   |
Skús si kuknúť dačo o procedúrach, mohlo by ti to pomôcť. |
| |
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: Ut 15.11.11 22:11 |   |
Našťastie to neni také akútne, len potrebujem updatovať cez script, lebo máme na php5.sk momentálne nejako pošahanú administráciu... |
| |
    |
 |
walther
 Užívateľ
 Založený: 24.01.2008 Príspevky: 10194 Bydlisko: Bratislava Vek: 24
 | Zaslal: Ut 15.11.11 22:12 |   |
Tak ono procedúry si naštuduješ za polhodinku, nie je to nič zložité  |
| |
  |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: St 16.11.11 15:58 |   |
|
  |
 |
camo
 Zablokovaný užívateľ
 Založený: 05.09.2009 Príspevky: 1176 Bydlisko: Lehota pod Vtáčnikom
 | Zaslal: St 16.11.11 16:13 |   |
Naozaj to funguje:
| kód: | | update test set name=(select name from (select name from test where id=1) as subselctTable) where id=2; |
Ale autor to vystihol keď napísal: "The result was the following rather ugly query:" |
| |
    |
 |
walther
 Užívateľ
 Založený: 24.01.2008 Príspevky: 10194 Bydlisko: Bratislava Vek: 24
 | Zaslal: St 16.11.11 16:54 |   |
Nemôžem si pomôcť, stále mi príde procedúra ako lepšie (a o dosť prehľadnejšie a udržovatelnejšie) riešenie  |
| |
  |
 |
|