вопрос по limit

Discussion in 'Песочница' started by durito, 17 Nov 2010.

  1. durito

    durito Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    125
    Likes Received:
    24
    Reputations:
    27
    ни как не пойму, если сливать базу через скуль-инъекцию через limit то сливает от силы 20-30К, если же через where+id= то тянешь всю базу на 200-300К. да понятно что там не все записи, но почему такая разница? почему limit выводит лишь часть?

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

    Lestatkiy Member

    Joined:
    27 Sep 2010
    Messages:
    50
    Likes Received:
    22
    Reputations:
    5
    Дословно http://translate.google.com/?hl=ru&tab=wT#en|ru|limit =)
    А так кто знает, может пора с руками к батарее, или собиратся у костра одтанцовывать :(
     
  3. z0mbyak

    z0mbyak Active Member

    Joined:
    10 Apr 2010
    Messages:
    537
    Likes Received:
    200
    Reputations:
    293
    ID это жесткое условие, а лимит это лимит...
     
  4. Hanata

    Hanata New Member

    Joined:
    23 Oct 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Как сказал z0mbya: лимит это лимит...
    limit - это предел с n по m-записей.

    Прежде чем что-то "хакать и сливать", надо учить то, что ломаешь.
    man sql.
    _http://www.softtime.ru/bookphp/gl12_9.php
     
  5. durito

    durito Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    125
    Likes Received:
    24
    Reputations:
    27
    это понятно, что ничего не понятно

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

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

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

    z0mbyak Active Member

    Joined:
    10 Apr 2010
    Messages:
    537
    Likes Received:
    200
    Reputations:
    293
    Вот тебе же правильно сказали, учи что ломаешь!

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

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

    Я же сказал, что id это жесткое условие, а лимит это лимит!
     
    1 person likes this.
  7. durito

    durito Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    125
    Likes Received:
    24
    Reputations:
    27
    спасибо, понял про ограничение, но вот столкнулся с тем, что вывод одного поля select+email+from+users совершенно разный по limit и id.

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

    z0mbyak Active Member

    Joined:
    10 Apr 2010
    Messages:
    537
    Likes Received:
    200
    Reputations:
    293
    Как вариант, записи в таблице могут идти не по порядку (например id=65, id=88, id=1 и тд), поэтому и будет разница, так как лимит берет, например с первой строки по сотую, а по id у тебя получается, например id=1 находится в 101 строке....

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

    concat_ws(0x3a,email,id)

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

    durito Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    125
    Likes Received:
    24
    Reputations:
    27
    нет, данные одни и те же, но выводится разное их количество

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

    Hanata New Member

    Joined:
    23 Oct 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Мне кажется, что гораздо проще начать с изучения sql,с основ, потом будет гораздо проще, и все вопросы такого рода отпадут сами собой. Да и знания не лишние:)
    Реляционная бд - штука непростая, но от этого её изучение становится только интересней.
    Удачи Вам в вашем начинании)
     
  11. aka PSIH

    aka PSIH Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    582
    Likes Received:
    284
    Reputations:
    51
    z0mbyak
    причем тут все эти ограничения, когда ТС ясно указал что он выводит за раз - одну запись из базы?
    durito
    Было подобное несколько раз, попробуй так перебирать limit+$n,99999999
    Выводить будет все-равно по одной записи, но должен вывести все 250к...
     
Loading...