PDA

Просмотр полной версии : Like и деление базы


1ten0.0net1
03.02.2008, 23:49
Вообщем, в процесе творческой работы возникла необходимость достать базу через SQL-Injection.
Проблема: необходимо достать всю базу.
Предпосылки: скуля выводит только одну строку (это я решил скриптом), сама скуля в mod_rewrite => передача методом POST невозможна. Скрипт для вытягивания организован по принципу where+table_name+not+in+(....). Соответственно, рано или поздно длина запроса становится предельно допустимой и мой скрипт тупо дохнет. Никаких средств для работы с БД не имеется. Вопрос - как решить проблему - желательно - составление грамотного SQL запроса, который не увеличивет длину GET-запроса, а держит ее примерно одинаковой.

P. S. MySQL

Macro
03.02.2008, 23:50
какая версия? Можно перебирать limit'ом

Spyder
04.02.2008, 00:02
непонятно, наверное я глючу
покажи полностью запрос, что именно ты извлекаешь и зачем тебе конструкция not in

1ten0.0net1
04.02.2008, 00:03
Вопрос решен. Я в условии брал where > id сначала. Сейчас попробовал where = id. Работает. Опять же - просто поразмышлять. Как наиболее ровно при помощи LIKE поделить базу?
Понятно, что если будет отбирать по первой букве - кол-во строк в результате будет разным. А как при помощи LIKE сделать, чтобы практически одинаковые части?

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

Если LIKE 'a%' - 3 записи. - база поделена не ровно. Как (используя LIKE) на примере базы, например 10 000 записей, поделить поровну на 10 частей или на 20, например.

Macro
04.02.2008, 00:10
а зачем его использовать? А count и limit не подойдут?

1ten0.0net1
04.02.2008, 01:05
а зачем его использовать? А count и limit не подойдут?

Понятно, что лимит можно - но он очень часто не катит. Меня интересует какие есть варианты решения через LIKE

krypt3r
04.02.2008, 12:30
LIMIT'ом можно автоматизировать, а тут зависимость от предыдущего результата будет

where+table_name+not+like+'%table1%'+and+not+like+ '%table2%'+and+not+like+'%table3%'+...

NOT IN () такая же вата, в принципе, лишь синтаксис иной.
Не-е, LIMIT лучше ))

Helios
04.02.2008, 15:10
Через Like точного разделения ты не сделаешь - это та же регулярка, в которой ты можешь указать что подходит, но не можешь сказать в каком количестве