Autor Zpráva
luma64
Profil
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
luma64:
To se týká výpisu dat, nebo úpravy dat v DB?
luma64
Profil
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
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
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
luma64:
Nejde ve finále náhodou o to vybrat pro každé RČ jen první záznam?
luma64
Profil
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
Ale nevim, zda nebude treba i ta druha cast z posledniho dotazu v clanku, jestli hces vybrat jen prvni zaznam se s ruznym rodnym cislem.
luma64
Profil
potrebujem ale pracovat nad aktualnym a dalsim zaznamom pretoze ako je v podmienke vidno porovnavam aj dgnx
Tori
Profil
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;

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: