Autor Zpráva
E
Profil *
Dobrý deň chcem sa spýtať ako dosiahnem to že ak mám tabulku a v nej
id, username, klientid a mám napr. jeden riadok vyplnené všetky hodnoty a v druhom nemam vyplnené username ale klientid je rovnaké ako s prvým záznamom ako dosiahnem aby mi ho username updatovalo tak aby bolo zhodné s prvým záznamom?
Petr Ká
Profil
ahoj

google => update where (select ... )
E
Profil *
mysql_query("update sl_internet set username=(select username from (select username from sl_internet where length(username) > 0 and klientid=klientid) as subselctTable) where klientid=klientid;");


nieako mi to nefunguje
kde robím chybu?
Kajman_
Profil *
Možná takto nějak
update sl_internet ch
join   (select klientid, min(username) username
        from   sl_internet
        group  by klientid
        where  nullif(username,'') is not null) v
on     ch.klientid = v.klientid
set    ch.username = v.username
where  nullif(ch.username,'') is null


Ale uniká mi smysl. Normální je mít v takové tabulce jen klientid. Username se dáva do jiné a jen se přilinkuje, pokud je na výstupu potřeba.
E
Profil *
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 'where nullif(username,'') is not null) v on ch.klientid = v.klientid set ' at line 5

prečo táto chyba?
Kajman_
Profil *
Přehodil jsem group by a where, opravte si pořadí.
E
Profil *
Query failed: 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 'group by klientid on ch.klientid = v.klientid set ch.username = v.user' at line 5


opať
panther
Profil
E:
tipnu si, že jsi vzal celý Kajmanův pátý řádek a prohodil ho za čtvrtý. To nejde, musíš taky trochu přemýšlet, konkrétně, k čemu patří ta koncová závorka a alias v.
E
Profil *
dobre si tipol ,, no dal som to v naspať do 5 ale opať
 Every derived table must have its own alias
ake alias myslíš? .. ďakujem za váš čas..
E
Profil *
Ďakujem veľmi pekne (neporečital som si to poriadne :) )
už to funguje tu to je ak by niekedy nikto to potreboval:
 mysql_query("update sl_internet ch
        join   (select klientid, min(username) username
        from   sl_internet
        where  nullif(username,'') is not null
        group  by klientid)  v
on     ch.klientid = v.klientid
set    ch.username = v.username 
where  nullif(ch.username,'') is null")or die('Query failed: ' . mysql_error());

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0