Можно еще добавть, что с помощью таких выражений возможна инъекция после order by, т.к. в order by тоже возможно использование выражений (вот в limit помоему нельзя)
возможен вариант:
SELECT * FROM `table1` order by (select+if(2=1,1,(select 1 union select id)))
в данном случае выдаст ошибку
#1242 - Subquery returns more than 1 row
, т.к 2=1 - false
если подставить выражение 1=1 ошибки не будет
пример
SELECT * FROM `table1` order by (select+if(substring(version(),1,1)=4,1,(select 1 union select id)))
если версия мускула 4 ошибки не будет, если не 4 то будет ошибка. ну и класика жанра:
SELECT * FROM `table1` order by -id*(substring(version(),1,1)=4)
если версия мускула 4, то сортировка пойдет по полю ид в обратном порядке, т.к. -id*1 (aka true) будет -id, а -id*0 (ака false) будет 0, ну и с бенчмарком тоже самое
из всех предложенных вариантов вариант с иф - бенчмарк самый универсальный, но самый долгий