Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:29 27.06.24 
Компютри и Интернет
   >> Бази данни
*Кратък преглед

Тема въпрос за select  
Авторtil (Нерегистриран)
Публикувано07.06.06 23:57



имам следният въпрос
значи за дандено ip във една таблица има да речем 22 записа как мога да селектна последният запис за това ип



Тема Re: проста работанови [re: til]  
Автор salle (един такъв)
Публикувано08.06.06 00:15



Само дефинирай какво имаш предвид "последния запис"



Тема Re: проста работанови [re: salle]  
Авторtil (Нерегистриран)
Публикувано08.06.06 00:42



Еми случаят е следният имам една таблица с две полета:
в едното се записва дата и време под формата на unix timestamp а във другото ip номера и да речем че за период от два часа да речем от 00:00:00 до 02:00:00
дадено ип се среща няколко пъти да речем 6 пъти аз искам да изкарам последният шести път и да взема времето



Тема Re: Е така вече е по-лесно нали?нови [re: til]  
Автор salle (един такъв)
Публикувано08.06.06 01:43



"в едното се записва дата и време под формата на unix timestamp ... за период от два часа да речем от 00:00:00 до 02:00:00 дадено ип се среща няколко пъти да речем 6 пъти аз искам да изкарам последният"

т.е. искаш да изкараш реда за който ip е еди какво си и timestamp е най-голямо?

Виждаш ли как същото нещо казано по друг начин може да се преведе на SQL

Сега ако каже и за каква СУБД иде реч ще се намери някой да ти предложи оптимално решение.

За MySQL:
SELECT ... WHERE ip = '192.168.1.1' ORDER BY ts DESC LIMIT 1;



Тема Re: Е така вече е по-лесно нали?нови [re: salle]  
Автор mr.vain (пътник 57)
Публикувано10.06.06 23:34



А защо не с агрегат?

SELECT ... MAX(ts) AS maxTS ... WHERE ... GROUP BY ip;

Само питам.

Има три вида хора. Част от проблема, част от решението и част от пейзажа.


Тема Re: Е така вече е по-лесно нали?нови [re: mr.vain]  
АвторДядoMpaз (Нерегистриран)
Публикувано15.06.06 09:18



За такава заявка няма смисъл от агрегат. GROUP BY най вероятно ще направи темп таблица в паметта, което за един ред е излишно. Освен това limit е оптимизиран доста добре пък ако има и индекс на датата и IP-то MySQL ще прочете от диска само реда който му трябва, останалото ще го вземе от индекса който при нормални настройки е вече зареден в паметта. Скороста на изпълнение ще е с пъти по бърза.

Разбира се ако трябва да се извади за всички IP-та, ще трябва да се мине през GROUP BY, макар че за по голяма таблица с 10-100 милиона записа ше е адски бавно и пак бих се замислил дали да не използвам нещо друго.



Тема Re: Е така вече е по-лесно нали?нови [re: ДядoMpaз]  
Автор wqw (АзСъмЖив)
Публикувано15.06.06 17:20



Защо си мислиш, че има само един запис за това IP?
Защо си мислиш, че двете заявки ще обработят различен брой записи физически, при положение, че имат еднакви FROM и WHERE клаузи?
Защо си мислиш, че ORDER BY няма да ползва временна таблица, а GROUP BY ще ползва за толкова малко записи?
Защо предпочиташ да използваш proprietary MySQL измислица по не set-oriented начин, пред ANSI SQL съвместимия синтаксис?

Разсъжденията ти са bulsh*t отвсякъде, IMNSHO! Въпроса е дали го осъзнаваш?!

cheers,
</wqw>



Тема Re: проста работа *DELETED*нови [re: til]  
Автор silvig (fine)
Публикувано03.07.06 22:05



Мнението е изтрито от silvig

Тема Re: проста работанови [re: til]  
Автор silvig (fine)
Публикувано03.07.06 22:12



A taka ? :
select ... from tbl where ip = '192.168.1.1'
and adate= (select max(adate) from tbl where ip = '192.168.1.1')

Поздрави !!!




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.