|
Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
Тема
|
Vypros za SQL SELECT zajavka
|
|
Автор | dim (Нерегистриран) |
Публикувано | 05.12.03 15:16 |
|
Zdravejte,
ima li variant v SQL zajvkata (interesuva me za MySQL ili PostgreSQL ), da se ukaje na SELECT da spre da tyrsi kogato e otkril opredelen broj resultati. Ne znam dali sym prav, no maj pyrvo se izchita cialata tablica i sled tova se izpluva resultata?
Blagodarja na vsichki otgovorili
| |
Тема
|
Re: Vypros za SQL SELECT zajavka
[re: dim]
|
|
Автор |
phpGuru (минаващ) |
Публикувано | 05.12.03 15:52 |
|
и двете имат LIMIT клауза
http://www.mysql.com/doc/en/SELECT.html
http://www.postgresql.org/docs/view.php?version=7.3&idoc=1&file=sql-select.html
| |
Тема
|
Re: Vypros za SQL SELECT zajavka
[re: dim]
|
|
Автор |
salle (един такъв) |
Публикувано | 06.12.03 14:55 |
|
Погледни също:
и вземи да пишеш на Български
| |
Тема
|
Re: Vypros za SQL SELECT zajavka
[re: dim]
|
|
Автор |
AcidMemory () |
Публикувано | 08.12.03 00:22 |
|
погледни и mysql_unbuffered_query - това е в PHP, но ако ти трябва за нещо друго, просто виж еквивалента ...
| |
Тема
|
Re: unbuffered e съвършено друго нещо
[re: AcidMemory]
|
|
Автор |
salle (един такъв) |
Публикувано | 08.12.03 09:36 |
|
mysql_unbuffered_query() в PHP използва C функцията
mysql_use_result() за разлика от mysql_query() (в PHP), която използва mysql_store_result()
И двете нямат никакво отношение към въпроса тъй като и двете се изпълняват след като C функцията mysql_query() или mysql_real_query() e приключила без грешка. т.е. след като заявката вече е изпълнена и резултата е приготвен на сървъра. Забележи - след като целия резултат е приготвен.
Разликата е единствено в това дали клиента дърпа резултата наведнъж или ред по ред
Редактирано от salle на 08.12.03 09:42.
| |
|
абсолютно правилно, но не смятам, че няма връзка към въпроса
щом изпълняваш SELECT, значи имаш клиент - няма какво повече да кажа ...
това как MySQL организира работата с resultset-а не е работа на този, който го използва (ако иска може да prepare-ва целия резултат и да знае броя на редовете, ако иска може и да не го прави)
| |
Тема
|
Taka ste se vyrne sluchaen rezultat
[re: dim]
|
|
Автор |
NikB (любопитен) |
Публикувано | 08.12.03 14:28 |
|
Niamam mnogo opit s MySQL, no ako rezultat na clienta se ochakva predi queryto da se izpylni napylno na servera, to tozi rezultat ste vkliuchva sluchaina izvadka ot zapisi, otgovariasti na selecta.
Pisah "sluchaina", no v deistvitelnost tia zavisiat ot algoritmite na server-a i niama garancia, che vsichki versii rabotiat i ste rabotiat ednotipno.
| |
Тема
|
Re: Taka ste se vyrne sluchaen rezultat
[re: NikB]
|
|
Автор |
salle (един такъв) |
Публикувано | 08.12.03 15:03 |
|
Ами то това е от АБВ на релационните бази данни. Ако нямаш ORDER BY клауза сървъра има право да ти върне резултата в произволен ред.
| |
Тема
|
Re: Taka ste se vyrne sluchaen rezultat
[re: salle]
|
|
Автор |
NikB (любопитен) |
Публикувано | 08.12.03 15:51 |
|
Sledovatelno, v sluchaia ste e proizvolna izvadka - nali tova mu pisah
| |
|
Първоначалният въпрос беше:
"ima li variant v SQL zajvkata (interesuva me za MySQL ili PostgreSQL ), da se ukaje na SELECT da spre da tyrsi kogato e otkril opredelen broj resultati"
Има ли начин .... да спре да търси когато намери определен брой редове.
Отговорът е: Има начин и това е SELECT
Защото ако си погледнал препратката която дадох
щеше да разбереш, че ако имаш таблица a с 1 000 000 реда
SELECT a FROM b ORDER BY a LIMIT 10;
например ще СПРЕ да търси в таблицата a след като намери първите 10 реда.
Докато това за което ти говориш - да се използва mysql_use_result() за да се вземат само първите 10 реда означава да накараш сървъра да приготви като резултат всичките 1 000 000 реда от които ти да си дръпнеш само 10. Тъй, че твоя съвет е да се натовари сървъра с огромни данни които клиента може и да не ги ще. Не вярвам да намериш някой на когото тази идея да му хареса.
Между другото mysql_use_result() съществува поради съвършено друга причина и не неможе да се използва за да изтеглиш част от резултата.
Съветвам те внимателно да прочетеш за какво е тази функция
и да обърнеш особено внимание на това
When using mysql_use_result(), you must execute mysql_fetch_row() until a NULL value is returned, otherwise, the unfetched rows will be returned as part of the result set for your next query. The C API will give the error Commands out of sync; you can't run this command now if you forget to do this!
| |
|
Страници по тази тема: 1 | 2 | 3 | >> (покажи всички)
|
|
|