Like и деление базы

Discussion in 'PHP' started by 1ten0.0net1, 3 Feb 2008.

  1. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Вообщем, в процесе творческой работы возникла необходимость достать базу через SQL-Injection.
    Проблема: необходимо достать всю базу.
    Предпосылки: скуля выводит только одну строку (это я решил скриптом), сама скуля в mod_rewrite => передача методом POST невозможна. Скрипт для вытягивания организован по принципу where+table_name+not+in+(....). Соответственно, рано или поздно длина запроса становится предельно допустимой и мой скрипт тупо дохнет. Никаких средств для работы с БД не имеется. Вопрос - как решить проблему - желательно - составление грамотного SQL запроса, который не увеличивет длину GET-запроса, а держит ее примерно одинаковой.

    P. S. MySQL
     
  2. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    какая версия? Можно перебирать limit'ом
     
  3. Spyder

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

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    непонятно, наверное я глючу
    покажи полностью запрос, что именно ты извлекаешь и зачем тебе конструкция not in
     
  4. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Вопрос решен. Я в условии брал where > id сначала. Сейчас попробовал where = id. Работает. Опять же - просто поразмышлять. Как наиболее ровно при помощи LIKE поделить базу?
    Понятно, что если будет отбирать по первой букве - кол-во строк в результате будет разным. А как при помощи LIKE сделать, чтобы практически одинаковые части?

    Пример (условный):
    avalone
    alacurd
    ariel
    baracca
    zero

    Если LIKE 'a%' - 3 записи. - база поделена не ровно. Как (используя LIKE) на примере базы, например 10 000 записей, поделить поровну на 10 частей или на 20, например.
     
    #4 1ten0.0net1, 3 Feb 2008
    Last edited: 3 Feb 2008
    1 person likes this.
  5. Macro

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

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    а зачем его использовать? А count и limit не подойдут?
     
  6. 1ten0.0net1

    1ten0.0net1 Time out

    Joined:
    28 Nov 2005
    Messages:
    473
    Likes Received:
    330
    Reputations:
    389
    Понятно, что лимит можно - но он очень часто не катит. Меня интересует какие есть варианты решения через LIKE
     
  7. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    LIMIT'ом можно автоматизировать, а тут зависимость от предыдущего результата будет
    Code:
    where+table_name+not+like+'%table1%'+and+not+like+'%table2%'+and+not+like+'%table3%'+...
    
    NOT IN () такая же вата, в принципе, лишь синтаксис иной.
    Не-е, LIMIT лучше ))
     
  8. Helios

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

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    Через Like точного разделения ты не сделаешь - это та же регулярка, в которой ты можешь указать что подходит, но не можешь сказать в каком количестве