Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 15. 5. 2012, 13:56:51
Zdravim, ako viem zistit hodnotu napr col1 v dalsom riadku. Ak dojde k zmene col1 v dalsom riadku potrebujem urobit nieco s col1 v aktualnom riadku.
|
||
Tori Profil |
#2 · Zasláno: 15. 5. 2012, 14:03:24
luma64:
To se týká výpisu dat, nebo úpravy dat v DB? |
||
luma64 Profil |
#3 · Zasláno: 15. 5. 2012, 14:07:51
Nieco ako
while($row = mysql_fetch_array( $result )) { // ak rc z aktualneho raiadka a nasledujuce rc je rovnake potom urob v dalsom riadku update } |
||
Tori Profil |
#4 · Zasláno: 15. 5. 2012, 14:16:27
luma64:
Můžete ukázat přesný kód? Jde mi o oba dotazy (select + update) a způsob, jakým data měníte. Možná by to šlo nějakým jedním šikovným dotazem, ale i kdyby ne, tak ke konkrétnímu problému se lépe radí. :) |
||
Joker Profil |
#5 · Zasláno: 15. 5. 2012, 14:22:34
luma64:
No a v čem je problém? Něco jako if(rc == něco) mysql_query(dotaz)
Ale z té formulace se zdá, že kdybychom znali celý problém (proč se tohle má dělat), nejspíš by to šlo udělat jednodušeji. |
||
luma64 Profil |
Samozrejme, ze toto je blud, ale ide o takyto kod //odfiltrovanie $query="Select id, rc, dgnx from import order by rc"; $result=mysql_query($query); if ($result) { $lastrc=''; $lastdgnx=''; while($row = mysql_fetch_array( $result )) { $id=$row["id"]; if ($row["rc"]==$lastrc && $row["dgnx"]==$lastdgnx) { $queryU = "Update import set spracpriznak= 'JUMP' where id='$id'"; mysql_query($queryU); } $lastrc=$row["rc"]; $lastdgnx=$row["dgnx"]; } } |
||
Joker Profil |
#7 · Zasláno: 15. 5. 2012, 14:48:04
luma64:
Nejde ve finále náhodou o to vybrat pro každé RČ jen první záznam? |
||
luma64 Profil |
#8 · Zasláno: 15. 5. 2012, 14:50:48
v podstate ano
|
||
peta Profil |
http://sql-vyuka.cz/d/node/28
SELECT DISTINCT ON (rc) id, rc, dgnx FROM import ORDER BY rc ASC |
||
luma64 Profil |
#10 · Zasláno: 15. 5. 2012, 16:09:16
potrebujem ale pracovat nad aktualnym a dalsim zaznamom pretoze ako je v podmienke vidno porovnavam aj dgnx
|
||
Tori Profil |
#11 · Zasláno: 17. 5. 2012, 09:15:47
Takže pro každou unikátní kombinaci sloupců rc a dgnx chcete updatovat všechny řádky, s výjimkou prvního (=ten který má nejnižší id)? Zkuste tohle, je to upravený příklad z FAQ:
UPDATE import t1, (SELECT t2.rc, t2.dgnx, MIN(t2.id) ref FROM import t2 GROUP BY t2.rc, t2.dgnx ORDER BY NULL) t3 SET t1.spracpriznak = 'JUMP' WHERE t1.rc = t3.rc AND t1.dgnx = t3.dgnx AND t1.id != t3.ref; |
||
Časová prodleva: 12 let
|
0