Hola,
Una preguntita, ¿de donde has sacado que la funcion que realiza esa accion en MySQL se llama substr()? En
http://dev.mysql.com/doc/mysql/en/string-functions.html no esta substr(). Si esta substring().
Una cosa son las funciones de php.net que son para usar en el codigo PHP,y otra distinta son las funciones de mysql.com que son para usar en las consultas a MySQL. Son independientes, no tienen porque coincidir ni existir las mismas ni tener los mismos parametros ni orden de los parametros.
Saludos.