Yo tengo algo parecido de esta forma:
Código SQL:
Ver originalWHERE TRANSLATE(campo,'ÁÉÍÓÚáéíóú','AEIOUaeiou') ilike translate('%cadena a buscar%','ÁÉÍÓÚáéíóú','AEIOUaeiou')";
Te funciona bien siempre y cuando la tabla no sea muy grande.
Hacer uso de funciones para comparar campos, evita el uso de indices y hace que las consultas puedan ser muy lentas con muchos datos.
saludos