Autor | Zpráva | ||
---|---|---|---|
keeehi Profil |
#1 · Zasláno: 21. 11. 2008, 22:52:57
ahoj
mám tabulku kde však není číselné ID s autoincrementem. Jako primary key je použit sloupec ve kterém je náhodně 6 alfanumerických znaků(samozdřejmě že se neopakují). V tabulce je i sloupec "typ" ve kterém je číslo 1-5 V tabulce je i sloupec datum, který asi nepůjde moc použít - vysvětlení níže potřebuji vybrat 20 posledních záznamů které se do tabulky uložily a ve sloupci "typ" je 3. Proč nelze použít datum? protože pokud bych to srovnal podle data sestupně, může se mi stát, že na pozicích 18-23 bude stejné datum -> 2 datumy budu zahrnuty a 3 ne, ale ty dva však nemusejí být bloženy jako 18tý a 19tý. případně bych dodatečně doplnil do tabulky i ID s autoincrementem, ale v tabulce je už velké množství dat. šlo by to udělat nějak automaticky? |
||
Leo Profil |
#2 · Zasláno: 21. 11. 2008, 23:02:09
Tak bud chcete nebo nechcete poslednich 20 zaznamu. A aby to melo smysl, musite je podle neceho seradit, nic jineho, nez datum nemate. Takze musite upresnit pozadavek. Leo
|
||
mikul Profil |
#3 · Zasláno: 21. 11. 2008, 23:04:27
Nemužete např. místo jen datumu vkládat do dtb celý čas? Aspoň jsem to pochopil, že vkládáte pouze datum. Myslím, že 3 nové řádky v dtb během jedné vteřiny nebudeou ne?
|
||
keeehi Profil |
#4 · Zasláno: 21. 11. 2008, 23:11:40
jsou dvě(tři) možnosti:
1) seřadit je tak, jak je postupně mysql ukládalo (tak jsou seřazené při výpisu select * from tabulka) ale pak nevím jak napsat LIMIT 2) seřadit je obráceně, než je mysql ukládalo - LIMIT 0,20 ale zase nevím, jak zapsat ORDER BY (ORDER BY desc asi nepůjde) 3) do databáze přidám sloupec ID s autoincrementem -do toho se mi moc nechce -> pak bych prosil poradit, jak ho nějak automaticky vyplnit. |
||
keeehi Profil |
#5 · Zasláno: 21. 11. 2008, 23:17:55
„Nemužete např. místo jen datumu vkládat do dtb celý čas? Aspoň jsem to pochopil, že vkládáte pouze datum. Myslím, že 3 nové řádky v dtb během jedné vteřiny nebudeou ne?“
ne nemůžu - není to datum ukládání, ale datum vytvoření. vysvětlení: Například někdo napíše na nějakej cizí server článek. Ten se uloží a u něj je jen datum bez času. Já se na ten servr připojím na stránku s výpisem nejnovějších 20-ti článků a pak se kouknu do databáze, zda už tam ty články jsou, a pokud tam nejsou, tak je doplním. nechci však zbytečně prohledávat celou databázi, stačí mi právě 20 posledních vložených záznamů. |
||
Kajman_ Profil * |
#6 · Zasláno: 22. 11. 2008, 13:09:49
Přidejte si id, nebo změňte sloupec z date na datetime.
|
||
Andre Profil |
#7 · Zasláno: 22. 11. 2008, 13:23:09
Na vybráni 20 záznamu zkus: TOP 20 a zbytek napiš normálně.
|
||
keeehi Profil |
#8 · Zasláno: 22. 11. 2008, 14:19:28 · Upravil/a: keeehi
Kajman_„Přidejte si id, nebo změňte sloupec z date na datetime.“
jak jsem psal výše, datum neí datum ukládání do databáze a datum vtvoření článku na tom jiném servru. id se mi přidávat nechce, naboť budu pak muset upravit všechny ostatní inserty, selecty ... (a že jich není málo) Andre nějak jsem to nepochopil. jak by ten select měl vypadat? |
||
Andre Profil |
#9 · Zasláno: 23. 11. 2008, 10:38:47
SELECT TOP 20, * FROM tabulka WHERE neco=neco
|
||
Časová prodleva: 15 let
|
0