Videocast: TurboTip 10 - MySQL výber predchádzajúceho a nasledovného záznamu v jednom query
Dnes SELECTnem, potom SELECTnem znova a potom SELECTnem zo SELECTov, pretože to ide.
★ BEGINNERS ONLY ★
720p, pretože menej smrdí.
TurboTip 10 - MySQL výber predchádzajúceho a nasledovného záznamu v 1 query
Čo sa snažím povedať je, že sa dá spraviť toto:
SELECT (SELECT url FROM the_stuff WHERE id < 8 ORDER BY id DESC LIMIT 1) AS prev, (SELECT url FROM the_stuff WHERE id > 8 ORDER BY id ASC LIMIT 1) AS next
A to je celé. Ale prišli by ste o historku s hovnocucom.
Sledujte yablka skrz twitter - @yablko - pre informácie o nových videách, humor, ktorý baví len jeho a občasné nervové zrútenie.
* * *
Páči sa ti Yablkov TurboTip?

Robí s webom a občas o tom napíše. Nekomplikuje jednoduché a snaží sa neznieť príliš dôležito, pretože nie je. Medzi jeho záľuby patria jeho záľuby a tautológia. Nájdeš ho na brm.sk a obsmŕda aj na twitteri, ako @yablko.
Skús moje seriály: Nauč sa jQuery, Nauč sa CodeIgniter a Yablkov TurboTip. Ak ma chceš dohnať k tvorbe nových seriálov, behni na yablko.sk :)
6 komentárov k článku:
Komentovať môžu iba prihlásení
Zaregistruj sa cez bezplatnú registráciu alebo použi login cez Facebook (FB Connect)
Prihlás sa tu, ak už máš profil na Zajtra.sk:

no ja ti ušporím ešte jeden query - ten tretí, kde SELECTneš získané hodnoty ;D Ako? UNION!
(SELECT url AS prev, 0 AS next FROM the_stuff WHERE id < 8 ORDER BY id DESC LIMIT 1)
UNION
(SELECT 0 AS prev, url AS next FROM the_stuff WHERE id > 8 ORDER BY id ASC LIMIT 1)
v tomto prípade však musíme pristupovať k výsledku iným spôsobom, keďže ide o 2 riadky. Ja som zachoval možnosť prístupu k dátam ako prev a next, ale keďže budeme musieť vyberať z 2 riadkov, je to úplne zbytočné vyberať v oboch prípadoch aj nepravdu ako druhú hodnotu, čiže poďme si tento SELECT ešte trocha zjednodušiť ;P
(SELECT url FROM the_stuff WHERE id < 8 ORDER BY id DESC LIMIT 1)
UNION
(SELECT url FROM the_stuff WHERE id > 8 ORDER BY id ASC LIMIT 1)
a potom
$prev = mysql_result($SQL,0);
$next = mysql_result($SQL,1);
s tým, že v $SQL je uložený odpoveď servera na to query
BTW - tu je to už ozaj extrémne zjednodušené - UNION ti 2 "rovnaké" výsledky len spojí, už nič z tabuliek nevyberá a to = rýchlejšej aplikácií ;)

@Roman Hraška: predstav si hlasovanie, skús niekde JOINuť túto tabuľku "otázok" s tabuľkou "hlasov", napočítať poradie zvoleného hlasu, a potom vybrať predchádzajúci a nasledujúci prvok.
Keď som videl názov článku a tvoje meno, popravde čakal som viac :P To čo si postol je nice, a zabraňuje to výberu "neexistujúcich" záznamov, ale je to malá výzva :)

cize mozes rovno jednym selectom vytiahnut vsetko (cely stuff :) a url pre tie okolo) ked tak premyslam
SELECT *,
(SELECT url FROM the_stuff WHERE id < s.id ORDER BY id DESC LIMIT 1) AS prev,
(SELECT url FROM the_stuff WHERE id > s.id ORDER BY id ASC LIMIT 1) AS next
FROM the_stuff s WHERE s.id = %ID%

čo ak vymažem riadok s id=7 ? vtedy chcem, aby to skočilo na 6, nie neexistujúcu sedmičku

stačilo by
SELECT
(SELECT url FROM the_stuff WHERE id = 8-1) AS prev,
(SELECT url FROM the_stuff WHERE id = 8+1) AS next
Novinky
4 mes.
Používatelia Chrome začali prechádzať na nový rýchlejší Firefox, avizujú dáta Mozilly
Nový lepší a rýchlejší prehliadač Firefox 57 Quantum vyúsťuje zrejme do viac používateľov prechádzajúcich respektíve vracajúcich sa na tento prehliadač z iných prehliadačov, na osobných počítačoch aj smartfónoch.
4 mes.
Briti dokončili kúpu SK-NIC-u. Nové .sk domény nechávajú za 8.4 eur
Predaj správcu slovenskej domény .sk, SK-NIC, bol dokončený a novým majiteľom po telekomunikačnej skupine Danubiatel, do ktorej patrí napríklad Swan a 4ka, je britská spoločnosť CentralNic.
4 mes.
Šifrovanie diskov v Linuxe sa výrazne zlepšuje, dostáva ochranu integrity
Technológia šifrovania diskov LUKS podporovaná v Linuxe a využívaná mnohými linuxovými distribúciami dostáva výrazné vylepšenie v podobe vydania novej hlavnej verzie nástroja cryptsetup 2.0.0.
4 mes.
Blýská se Tesle na lepší časy? PepsiCo objednala 100 kamionů Semi
Známá automobilka Tesla má v poslední době problémy s plněním ambiciózních výrobních plánů stanovených vizionářem Muskem a pohybuje se v červených číslech.
4 mes.
DSL rozchodili cez mokrý špagát, dosiahli 3.5 Mbps. Nesimulovali slovenské linky?
Technik menšieho britského telekomunikačného operátora Andrews & Arnold uskutočnil zaujímavý experiment, keď sprevádzkoval pripojenie technológiou ADSL cez namočený špagát.
Staršie novinky »TOP dlhšie
- 01 Git - krátky úvod a prvé príkazy (VIDEO) (1264x)
- 02 TotalCon: konferencia/workshop venový Node.js / Total.js (1247x)
- 03 Notebook roka 2017 – hlasujte teraz (1155x)
- 04 Majte svoj cukor vždy pod kontrolou s glukometrom iHealth ALIGN BG1 (980x)
- 05 Úvod do Raspberry Pi a hry Minecraft (677x)
- Aj ty môžeš byť najčítanejší. Napíš článok »
TOP tento mesiac
- 01 Zábavné programovanie pre deti, 2. časť (374x)
- 02 Raspberry Pi a hra Minecraft II.: Staviam - staviaš - staviame (340x)
- 03 Prvý ročník open-source konferencie Bratislava OpenCamp je za dverami (225x)
- Aj ty môžeš byť najčítanejší. Napíš článok »
Nové články:
- 21.Vývoj mobilných telefónov za posledných 35 rokov
apr - 11.Prvý ročník open-source konferencie Bratislava OpenCamp je za dverami
apr - 11.PocketBook Touch HD 2 Ruby Red
apr - 2.Zábavné programovanie pre deti, 2. časť
apr - 22.Raspberry Pi a hra Minecraft II.: Staviam - staviaš - staviame
mar - Viac »
- Aj ty môžeš byť najčítanejší. Napíš článok »
Pekné veci
Pekné veci
Pekné veci
Pekné veci
Posledné komentáre
- Inak Minecraft PI sa dá nainštalovať aj priamo do Retropie - inštaluje sa to obvykle ext...
- odporúčam http://www.arcadepunks.com/retro-pi-downloads-page/ Sú tam hotové IMG s tis...
- Naliehavá výzva protestným zhromaždeniam na námestiach! Poznajte, ako je vami manipulova...
- @Sleepy Ďakujem :) .. RetroPie som doteraz neskúšala, ale pozerám, že to vyzerá veľmi za...
- Pekný článok. Ja som sa pustil do RPi pretože som chcel skúsiť RetroPie a musím povedať,...
Kritika
Vieš ako robiť veci lepšie? Pomôž našim odvážnejším členom a skritizuj im projekty!
Reklama
Slovenská IT komunita
Seriály zo Zajtra.sk
· Ako písať blog
· Ako sa stať PHP ninja s Yii Frameworkom
· Aplikácie pre Facebook
· CSS triky
· iOS vývojára príhody a skúsenosti
· Jednoduché programy, ktoré vám ušetria čas
· Modelovanie webového sídla
· Nauč sa CodeIgniter [HD]
· Nauč sa jQuery [HD]
· Nette PHP framework
· OOP v Javascripte
· Programujeme v Jave
· Programujeme v Lazaruse
· Programujeme v Pythone
· Robíme Eshop v ASP.NET Web Pages
· Slovenskí iOS developeri
· Webdizajn krok po kroku
· Yablkov TurboTip [HD]
@Roland Dobos to čo si napísal, že tvoj spôsob je rýchlejší je hlúposť, aspoň podľa mojich vedomostí je potrebné sa UNION vyhýbať a to z toho dôvodu, že ono musí najprv spraviť jedno query, potom druhé a tieto dva výsledky na pozadí musí spojiť do temporarnej tabulky... ďalej je fakt nepraktické aby si mal výsledok vo viacerých riadkoch hlavne pri použití nejakého ORM... jednoducho Romanove riešenie je rýchlejšie a praktickejšie oproti tvojmu