Select n-ty záznam z tabulky – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Select n-ty záznam z tabulky – MySQL – Fórum – Programujte.comSelect n-ty záznam z tabulky – MySQL – Fórum – Programujte.com

 

lukas.balaz0
Super člen
17. 12. 2014   #1
-
0
-

Čaute

Mám procedúru, ktorá ma v parametroch jedno číslo n. Niekde v strede procedúry potrebujem dať select, ktorý vráti jedno číslo a to je n-tý záznam z nejakej tabuľky, pre ktorý platí niečo vo where.

V MySQL >=5.5.6 to ide urobiť takto:

SELECT column FROM table WHERE podmienky ORDER BY id
LIMIT 1 OFFSET n

Ale ako to urobiť v MySQL 5.1.59, ktorú mám k dispozícii ??

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+15
Guru
17. 12. 2014   #2
-
0
-

#1 lukas.balaz
To potřebuješ pro nějaký stránkovač? Proč nepoužiješ id, které je jednoznačné a přímočaré? Co když ti mezitím někdo smaže některý z předchozích záznamů?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
lukas.balaz0
Super člen
17. 12. 2014   #3
-
0
-

#2 Kit
Mám tabuľku závislostí (uživateľ-vec) a potrebujem vymazať n-tý záznam od konkrétneho uživateľa.

Tabuľka má teda 3 stĺpce, id uzivatel_id vec_id. na id mám auto increment (to kvôli sorteniu záznamov keď vyberiem všetky veci, ktoré má jeden uživateľ).

Práve pri písaní tohto príspevku mi napadlo, že si tam namiesto id môžem dať quantity a potom budem deletovať nie n-tú uživateľovu vec ale priamo poviem "odtrhni túto vec od uživateľa".

Pôjdem to kódiť, ešte mi napadla otázka: dá sa nejako jednoducho urobiť, aby mi vypísalo všetky veci, ktoré ma uživateľ ? Teda ak má uživateľ 2x vec '1' a 3x vec '2', tak vyhodí tabuľku z hodnotami '1','1','2','2','2' ??? Ale nie je to také súrne, zaobídem sa bez toho.

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+15
Guru
17. 12. 2014   #4
-
0
-

#3 lukas.balaz
Můžeš přece napsat 

DELETE FROM table WHERE id=?

A smaže se záznam s konkrétním ID. Na to se tam to ID dává.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
lukas.balaz0
Super člen
17. 12. 2014   #5
-
0
-

#4 Kit
No len keď ja to id neviem. Teda ... možno sa mi nejako podarí urobiť,aby to PHP vedelo ... neviem ... porozmýšlam

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+15
Guru
17. 12. 2014   #6
-
0
-

#5 lukas.balaz
Normálně si to ID přihoď do URL pro smazání záznamu místo pořadového čísla. Pro vyšší bezpečnost by bylo dobré do té podmínky přidat i uzivatel_id, aby nikdo nemohl smazat jinou položku než svoji. 

DELETE FROM table WHERE vec_id=? AND uzivatel_id=?
Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
q
~ Anonymní uživatel
219 příspěvků
18. 12. 2014   #7
-
0
-

Nemůžu to teď vyzkoušet, ale nemyslím si, že MySQL 5.1 neumí offset.

Každopádně správně řešení je přes ID, jak píše Kit.

Nahlásit jako SPAM
IP: 78.156.159.–
lukas.balaz0
Super člen
18. 12. 2014   #8
-
0
-

#7 q
má offset, ale nedá sa použiť s premennou ..

Nahlásit jako SPAM
IP: 80.242.41.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý