Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   вопрос по limit (https://forum.antichat.xyz/showthread.php?t=242165)

durito 17.11.2010 15:03

ни как не пойму, если сливать базу через скуль-инъекцию через limit то сливает от силы 20-30К, если же через where+id= то тянешь всю базу на 200-300К. да понятно что там не все записи, но почему такая разница? почему limit выводит лишь часть?

с чем это может быть связано?

Lestatkiy 17.11.2010 15:10

Дословно http://translate.google.com/?hl=ru&tab=wT#en|ru|limit =)

А так кто знает, может пора с руками к батарее, или собиратся у костра одтанцовывать

z0mbyak 17.11.2010 16:38

ID это жесткое условие, а лимит это лимит...

Hanata 18.11.2010 21:30

Как сказал z0mbya: лимит это лимит...

limit - это предел с n по m-записей.

Прежде чем что-то "хакать и сливать", надо учить то, что ломаешь.

man sql.

_http://www.softtime.ru/bookphp/gl12_9.php

durito 19.11.2010 12:43

Цитата:

Сообщение от Hanata
Hanata said:
Как сказал z0mbya: лимит это лимит...
limit - это предел с n по m-записей.
Прежде чем что-то "хакать и сливать", надо учить то, что ломаешь.
man sql.
_http://www.softtime.ru/bookphp/gl12_9.php

это понятно, что ничего не понятно

дело в том, что к примеру count(*) показывает что в базе 300000 записей, я понимаю, что не все они полные, где-то отсутсвуют некоторые записи в полях таблицы

но вот вывод через limit+$n,1 позволяет вывести к примеру всего 20-30К, а вот если выводить через memberid=$n то выводишь все записи, допустим 250К, так как 50К пустые

вот и вопрос, почему такая разница?

z0mbyak 19.11.2010 12:59

Вот тебе же правильно сказали, учи что ломаешь!

Вывод у тебя из базы как выглядит? concat(), concat_ws, group_concat???

Помимо всяких "не нужных" настроек в mysql есть еще такие параметры как group_concat_max_len (по умолчанию 1024) и max_allowed_packet (по умолчанию 1 048 576), вот как ты думаешь сможешь за один запрос вывести больше чем можно??? Вот тебе и ответ, а по id у тебя выводится конкретная запись, которая полюбому меньше чем заданный предел!

Я же сказал, что id это жесткое условие, а лимит это лимит!

durito 19.11.2010 13:05

Цитата:

Сообщение от z0mbyak
z0mbyak said:
Вот тебе же правильно сказали, учи что ломаешь!
Вывод у тебя из базы как выглядит? concat(), concat_ws, group_concat???
Помимо всяких "не нужных" настроек в mysql есть еще такие параметры как group_concat_max_len (по умолчанию 1024) и max_allowed_packet (по умолчанию 1 048 576), вот как ты думаешь сможешь за один запрос вывести больше чем можно??? Вот тебе и ответ, а по id у тебя выводится конкретная запись, которая полюбому меньше чем заданный предел!
Я же сказал, что id это жесткое условие, а лимит это лимит!

спасибо, понял про ограничение, но вот столкнулся с тем, что вывод одного поля select+email+from+users совершенно разный по limit и id.

вот этого я понять не смог

z0mbyak 19.11.2010 13:09

Как вариант, записи в таблице могут идти не по порядку (например id=65, id=88, id=1 и тд), поэтому и будет разница, так как лимит берет, например с первой строки по сотую, а по id у тебя получается, например id=1 находится в 101 строке....

Попробуй проверить какой майл к какому id соответствует

concat_ws(0x3a,email,id)

Или выводятся совсем разные данные? (Не то, что должно)

durito 19.11.2010 16:51

нет, данные одни и те же, но выводится разное их количество

всем спасибо за советы

Hanata 19.11.2010 18:42

Мне кажется, что гораздо проще начать с изучения sql,с основ, потом будет гораздо проще, и все вопросы такого рода отпадут сами собой. Да и знания не лишние

Реляционная бд - штука непростая, но от этого её изучение становится только интересней.

Удачи Вам в вашем начинании)


Время: 20:25