abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
dnes 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 1
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
včera 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 805 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: mysql update LIMIT

22.9.2011 17:46 adrinko | skóre: 22
mysql update LIMIT
Přečteno: 1345×
ahojte,

snažím sa updatnuť všetky riadky v db, kde clovek_id =1, ale vynechat prve tri takéto a updatovať až všetky ostatné. Myslel som si, že to vyrieši LIMIT 3, 18446744073709551615 ale asi sa to nedá použiť na UPDATE. ako vyriešiť toto?

Odpovědi

Tarmaq avatar 22.9.2011 18:50 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: mysql update LIMIT
to je v te tabulce 18446744073709551615 zaznamu????
Don't panic!
22.9.2011 18:52 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
zatiaľ nie, to je len max hodnota unsigned bigint. použité preto, aby to prešlo všetko. aj tak to nefunguje, ani s menším číslom.
22.9.2011 19:08 jekub
Rozbalit Rozbalit vše Re: mysql update LIMIT
Pokud existuje pk (nebo jiné kritérium pro "prve tri", tak třeba
update t t1 set ...
where
(select count(*) from t t2 where t1.clovek_id=t2.clovek_id and t1.pk>t2.pk)>=3
and clovek_id=1
22.9.2011 20:09 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
no teda, nejak sa v tých téčkach strácam. :-) Môj problém je takýto, skúsim to slovne vysvetliť. Mám clovek_id a datum. A teraz by som chcel updatovat všetky riadky v databáze, kde je clovek_id=38 a datum iné ako 0000-00-00 00:00:00, ale preskočiť by mal prvé tri záznamy toho človeka a updatovať všetko ostatné počínajúc štvrtým záznamom. snáď som to neschaosil :D
22.9.2011 23:44 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
update * where id in (select tady můžeš dát cokoli....)

jestli mysql furt nezvládá update se subselectem na stejnou tabulku, tak si ty záznamy, který chceš, nejdřív hodit do temporary table a použít v subselectu tu temporary

create temporary table bleble as select blablabal

22.9.2011 23:46 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
V podstatě si subselectem vybereš ty záznamy, na který se má ta operace provýst a ten subselect můžeš v pohodě limitovat.
23.9.2011 00:42 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
l0gik, diky, presne tento update * where id in (select .. som pred par hodinami skusal, ale asi mam starsu 5.x mysq, lebo hlaska prisla "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'" :/

zatial som to narychlo osetril nacitanim ideciek do stringu a naslednym pouzitim update * where id in ('4','6',...). musim sa zoznamit s tymi docasnymi tabulkami, aby som to nejako zakomponoval do toho. diky moc
23.9.2011 01:32 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
aby som bol presny, na toto

"UPDATE table SET datum = '2011-09-12' WHERE id IN (SELECT id FROM table WHERE clovek_id=3 LIMIT 3,99999 )"

mi vracia "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'", mysql mam vo verzii 5.5.7. hmmm
24.9.2011 12:09 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
No tak vytvořit temporary table s těma idčkama, který chceš měnit a pak udělat subselect na tu temporary table místo na tu originální. Holt mysql.
24.9.2011 13:41 kuka
Rozbalit Rozbalit vše Re: mysql update LIMIT
Pokud to nemusi byt jeden dotaz, tak prirozene reseni je nejprve zjistit to treti nejnovejsi datum a pak ho normalne pouzit ve where podmince.
Toman avatar 8.10.2011 19:19 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: mysql update LIMIT
Hehe, já to říkám pořád - neříkám, že toto je právě ten případ, ale opět mi to následující fakt připomnělo.

Na pohovorech, a i obecně - na dotaz, jestli uchazeč ovládá MySQL odpoví, že ano... ale jeho znalosti končí u SELECTu a děsí se nad JOINem... připomněly mne to ty tečky :)
Josef Kufner avatar 4.10.2011 22:29 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: mysql update LIMIT
Mysql nemá rádo subselecty z tabulek, které upravuješ.
Hello world ! Segmentation fault (core dumped)
24.9.2011 13:43 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Pokial sa snazis robit takuto podivnost, tak ide celkom iste o nevhodny navrh struktury tabuliek. Mozes podrobne vysvetlit, preco to robis ? Preco tie 3 riadky preskakujes ?
26.9.2011 00:51 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
preskakujem ich preto, lebo čas od času sa môže užívateľovi upraviť limit na počet riadkov, ktoré môže vložiť do db. inými slovami, keď včera mohol vložiť 10 a dnes len tri, tak chcem nechať tri prvé a ostatných 7 zmeniť (disablovať, upraviť na iný príznak, atď). dátumy sú pri všetkých používaných 0000-00-00 00:00:00 a len pri tých disablovaných sú iné.
26.9.2011 16:55 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
absolutne nechapem :) preco 7 zmenit ked moze vkladat len 3 ?
27.9.2011 11:41 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
ono je to tak, že včera vložil (alebo niekedy inokedy) 10 záznamov (to bolo maximum, čo mohol vložiť a editovať). dnes pre toho užívateľa už chcem maximum 3. Teda nie je to nové maximum pre dnešný deň, ale nové maximum pre tohto užívateľa dokopy. takže preto by som chcel tých 7 z 10 disablovať (updatnuť) a nechať len 3. :)
28.9.2011 09:05 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Prepac ale vobec nechapem, co chces urobit (preco chces nieco 'disablovat', ked to tam je uz vlozene ??). Mozno to niekto iny pochopil a pomoze ti. V kazdom pripade na to ides zle pretoze MySQL (a celkovo SQL) nie je urcene na taketo ukony.
28.9.2011 12:55 kuka
Rozbalit Rozbalit vše Re: mysql update LIMIT
SQL rozhodne je urcene na takove ukony, jako je update radku relacni databaze na zaklade ruznych kriterii. Ze by mozna potreby tazatele lepe resil odlisny datovy model je vec jina a na zaklade dostupnych informaci to nikdo nedokaze rict.

Problem tady predevsim je, ze tazatel nevysvetlil, co chce presne udelat, zda to chce/potrebuje udelat jednim dotazem nebo skriptem, jake jsou vykonnostni souvislosti (jde o stovky, miliony, milardy zaznamu?) atd. Reseni skriptem je trivialni, reseni jednim updatem treba v Oracle je mozne, zda rovnez v MySQL a v jake verzi netusim.
28.9.2011 13:20 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
SQL absolutne nie je urctene na ukony typu 'vynechaj prve 3 riadky' pretoze nic take ako 'prve 3 riadky' neexistuje, vsetko zavisi od zoradenia dat. Navyse SQL neumoznuje vynechavat riadky podla umiestnenia pri ich zmene, musia sa zadat pevnejsie kriteria. Podla sucasneho datoveho modelu to nie je mozne, tym padom plati to, co som napisal - dana akcia sa v SQL urobit neda pretoze SQL na taketo veci nie je urcene (logicky, keby bolo, tak sa to urobit da).
28.9.2011 13:42 kuka
Rozbalit Rozbalit vše Re: mysql update LIMIT
Tak jiste ze ty radky musi byt prvni podle nejakeho kriteria, to je zjevne. A i kdyby bylo jedno, ktere tri radky to budou, tak to je taky sveho druhu kriterium. Zadani "z deseti radku ponech libovolne tri a ostatni smaz" je take zadani a ciste technicky na nem neni nic spatneho.

Co to znamena, ze SQL "nemoznuje vynechavat radky podle umisteni"? Ze na to neni specialni syntaxe? To neni a nikdo to netvrdi. Na druhe strane nepochybne lze pomoci SQL zjistit, ktery radek je v urcitem razeni na nejakem miste, typicka uloha na cviceni z SQL je "zjistete zamestnance s druhym nejvyssim platem". Az ho zjistim, nemam pak uz problem mu plat snizit nebo zvysit. V cistem SQL toto napsat nemusi byt primocare a nektere databaze proto poskytuji rozsireni pro dotazovani podle poradi radku, na hodnoty z predchoziho/nasledujiciho radku apod., protoze to jsou typicke potreby pro analyticke vystupy.

Posledni veta je krasny dukaz kruhem:-)
28.9.2011 14:14 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Avsak tie 'rozsirenie', o ktorych pises, su uplne mimo standardu SQL a kazda DB ich riesi inak (pripadne neriesi vobec). Takze, ako som uz napisal, SQL na taketo a podobne veci nie je urcene.
30.9.2011 14:18 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Prostuduj si prosím nejnovější SQL standard, věci jako WINDOW functions, klauzuli FETCH FIRST apod.
okbob avatar 29.9.2011 06:11 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: mysql update LIMIT
Dotazy typu "dej mi n-tý řádek z něčeho" by něměly modifikovat data - už z principu je nutné je řešit nad zamknutými tabulkami, případně v úrovni SERIALIZABLE - takže to nebude nic moc. Je mi jasné, že občas je to nutné - ale obyčejně to znamená nešikovně navrženou db nebo nepochopení SQL.
29.9.2011 14:05 PetrHL | skóre: 16 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: mysql update LIMIT
Místo LIMIT 3 asi myslíte OFFSET 3 :-). To by mělo ty první tři záznamy přeskočit.

Pokud jen tři řádky vynechat, tak bych si přečetl ID těch řádků a použil where not in (...) nebo id <> neco and id <> neco atd. Jsou to jen tři záznamy, takže by to mohlo být jedno.
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | VPS za rozumnou cenu?
29.9.2011 15:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: mysql update LIMIT
MySQL:
LIMIT {[offset,] row_count | row_count OFFSET offset}

Tedy …LIMIT 3, 10 nebo …LIMIT 10 OFFSET 3 je deset řádku od třetího.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
29.9.2011 16:41 PetrHL | skóre: 16 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: mysql update LIMIT
Ano, samozřejmě máte pravdu. Měl jsem se první mrknout do manuálu, omlouvám se.
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | VPS za rozumnou cenu?
29.9.2011 19:04 Kit
Rozbalit Rozbalit vše Re: mysql update LIMIT
Obávám se, že LIMIT v této podobě se dá použít pouze v příkazu SELECT a nikoli UPDATE. Ovšem pomocí složeného dotazu to určitě půjde.
29.9.2011 19:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: mysql update LIMIT
Jo to je pravda, nějak jsem už nereagoval v duchu původního dotazu.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
poky74 avatar 29.9.2011 20:46 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: mysql update LIMIT

Špatný návrh. Dlouze se zamyslet nad předěláním struktury a tenhle úkon přemýstit do aplikační části, takovéhle podivnosti mohou být původcem velkých problémů.

Chcete Linuxové samolepky nebo Tuxe na klíče? ->
29.9.2011 20:59 Kit
Rozbalit Rozbalit vše Re: mysql update LIMIT
Dá se souhlasit s tím, že se jedná o špatný návrh. Ovšem zatím jsme IMHO nepochopili, o co vlastně tazateli jde, takže se radí docela špatně. Podle mne by však bylo chybou logiku přemístit do aplikační části, protože MySQL podobné úkony zvládne. Jen je potřeba nejprve zjistit, jak to vlastně má fungovat, protože mně to jasné není.
29.9.2011 22:19 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Proč?? Co je špatného na požadavku upravit všechny záznamy kromě tří? Že zrovna SQL je na to nešikovné? A co? Furt je to řešení na dva dotazy v MySQL a na jediný dotaz v jakékoli databázi (No Flame :-)), tak nechápu, proč by kvůli tomu musel psát aplikační skript, navíc zatíženej takovejma věcma, jako že se data můžou pod rukama měnit atd... (v mysql málokdo používá repeatable read).
30.9.2011 00:38 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
No asi preto, ze riadky, ktore chce preskocit, sa ziadnym sposobom nelisia od ostatnych. Proste chce preskocit 'prve 3', co je uz samo o sebe kravina.
30.9.2011 08:38 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
A i kdyby se nelišili - pokud to je v zadání, že má vybrat libovolné tři, co s tím má dělat? To chceš např. zrušit všechny loterie? Tam se taky výherci ničím neliší.

Navíc předpokládám, že se budou lišit např. časem založení, takže může říci, že třeba platné zachová tři nejstarší.

Ale i kdyby nebylo stanoveno čím se liší a jaké tři, tak nechápu "mánii programátorů" se snažit napasovat svět do předem připravenejch škatulek a když se jim tam nevedjou, tak prohlásit, že je to špatně. Programovací jazyk slouží k popisu reality, ne naopak.
30.9.2011 09:13 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: mysql update LIMIT
Aby to nebylo ode zdi ke zdi :-)
Programovací jazyk slouží k popisu značně zjednodušené reality
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
30.9.2011 13:25 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Spíš bych řek, že každej popis je dosti zjednodušující. I ta kvantovka je jen přibližná. :-) Ale jinak souhlas.
30.9.2011 10:37 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Precitaj si este raz jeho otazku. On nechce vybrat nahodne tri :) proste to, co chce urobit, sa v SQL urobit neda (jednoducho ma zle navrhnutu strukturu DB). Okrem toho, SQL naozaj nie je urcene na vybranie nahodnych riadkov. Programovacie jazyky sem neplet, otazka je ohladom SQL. Cital si ju vobec ?
30.9.2011 13:24 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Přečet jsem si dvakrát a furt nevím kde je problém. On chce vybrat tři (nepíše jestli náhodně nebo dle nějakého kritéria, obojí SQL umí v praxi i ve standardu) a se zbytkem něco udělat. Kde je problém?

Jedinej je v mysql, že neumí dobře podotazy, takže UPDATE ... SET ... WHERE id NOT IN (SELECT .... LIMIT) neumí a proto se tazatel ptá, jak to obejít. Ostatní databáze to umí i takto triviálně. Tak fakt nechápu, kde je problém.

PS: Tedy jednoduše to jde nikoli náhodně, ale dle nějakého nedefinovaného kritéria, většinou pořadí fyzického uložení, ale to je jedno - pravej náhodnej výběr z DB je pravda trochu složitější.
30.9.2011 13:29 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Navíc - SQL je programovací jazyk jako každej jinej, to, že je speciálně zaměřenej na tom nic nemění - fakt mám rád lidi, který když se někdo zeptá na konkrétní dotaz, tak ho odpálkujou, že má blbě navrženou databázi, aniž by řekli v čem a jak by to řešili jinak. - spíš mám popravdě pocit, žes jeho dotaz nečet sám. To, co chce, je naprosto standardní věc a poměrně častá (máš X slotlů na něco, následně se něco změní - např. vyprší předplatné - a sníží se ti počet slotů), tak fakt nevím, co se ti na tom nelíbí.
30.9.2011 13:58 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Ok, ked si taky macher a my vsetci blbci, tak preco mu neodpovies ? :)
30.9.2011 14:06 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Tu mas zhrnutie, co ten clovek potrebuje urobit: 1 2 3 4
30.9.2011 14:17 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Já netvrdím, že jsi blbec (byť se mi ta replika o potrefené huse na jazyk dere :-)). Jen to co jsi napsal není pravda a navíc jsi to ještě napsal nepřijemně.

Navíc, řešení pro mysql jsem nahoře napsal (řešení s temporary table), kolega to doplnil s možností aplikačního řešení. Má to své problémy s izolací transakcí (bez zámků by to muselo být serializible), ale pokud ty tři vyselektované záznamy zamkne, tak to fungovat bude.
1.10.2011 00:40 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Ale samozrejme, ze riesenia existuju ale to su skor 'riesenia' (v uvodzovkach), inak povedane 'kraviny, ktore obhadzaju hlavny problem - zla struktura DB'. Ak si naozaj taky expert, akym sa tu tvaris, tak fakt nechapem, ako toto mozes povazovat za riesenie. Ty by si naozaj riesil 'temporary table' na mieste, kde za normalnych podmienok patri obycajny 'WHERE' ?
1.10.2011 20:59 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Znova: co je špatně na struktuře databáze a jak bys to řešil jinak?

Ano, v mysql, protože nepodporuje spoustu věcí ze standardu, se holt musí některý věci blbě obcházet. Takže bych to řešil pomocí temporary table, protože to v mysql holt jinak nejde. Nechápu, jak z toho, že mysql neumí něco, co by dle standardu umět měla vyvozuješ, že něco není úloha pro mysql.

Jelikož pořád opakuješ dokolečka to samé jako troll (termínus technikus, nikoli urážka), na další Tvé posty nebudu reagovat, dokud nenavrhneš pro daný účel lepší strukturu databáze.
2.10.2011 10:40 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Z popisu naozaj nie je mozne navrnut lepsiu strukturu, pretoze sa ani neda pochopit, co presne a preco chce adrinko. Navyse ani nepozname sucasnu strukturu (ty si si ju zrejme domyslel pomocou nejakych jasnovideckych schopnosti).
2.10.2011 17:21 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Pokud jsi z jeho popisu nepochopil strukturu databáze a co autor chce, je to Tvůj problém, nikoli problém tazatele. Ostatní zde v diskusi to evidentně pochopili.

Jen nechápu, jak můžeš tvrdit, že je špatná (tedy že jde udělat lepší), když nevíš, jaká je.
1.10.2011 21:01 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
A ještě zopakuji, aby Ti to bylo úplně jasné: ve všech ostatních db to jako podmínka do where napsat lze, je to pouze problém mysql.
2.10.2011 10:56 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: mysql update LIMIT
Fakt mam rad ludi, ktori tlacia uplne blbe riesenie len preto, ze sa to tak urobit da. Ten clovek pouziva MySQL takze je uplne irelevantne, co vedia alebo nevedia ine databazove systemy, on potrebuje riesenie pre MySQL. A jedine normalne riesenie pre jeho problem je zmenit strukturu DB tak, aby sa tam dal pouzit jednoduchy WHERE. Ale jasne, naco by sme pri radeni pouzivali mozog, ked sa to da urobit 100x zlozitejsie a narocnejsie :)
2.10.2011 17:37 l0gik | skóre: 22
Rozbalit Rozbalit vše Re: mysql update LIMIT
Na začátku jsi tvrdil, že to je problém SQL. Když jsme Ti dokázali, že to není problém SQL, že akorát SQL neznáš, tak se začneš točit na mysql?

Proč je řešení s temporary table blbé? To je takový problém poslat na SQL server jeden dotaz navíc? Ve výsledku to ten SQL server bude řešit stejně, jako by jiný SQL server řešil anonymní tabulku z poddotazu.

Struktura dat se má řídit svojí logikou a nikoli implementačními detaily. Jelikož navrhuješ úpravu databáze jen proto, že MySQL neumí jeden kus stadardu, je to, co navrhuješ, v rozporu s tímto pravidlem. Ve výsledku to pak při vývoji způsobí více problémů, než užitku.

Danej problém vždy bude potřeba řešit v MySQL na více dotazů, nebo kdybys udržoval v databázi spešl pořadí prvků, což jsou řešení ve výsledku daleko náročnější, než jeden dotaz navíc.

13.10.2011 11:05 Erbureth | skóre: 20
Rozbalit Rozbalit vše Re: mysql update LIMIT
IMHO by pomohlo rozdělení do tří kroků:

1) Označit řádky, které se budou zachovávat (UPDATE ... WHERE ... LIMIT 3)

2) Smazat všechno ostatní

3) zrušit to označení :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.