Tengo este comportamiento en PostgreSQL 9.3:
-- (1) this "doesn't" work select 't\om' like '%t\om%' -- result = false -- (2) this works select 't/om' like '%t/om%' -- result = true¿Por qué el resultado de la consulta (1) es falso? ¿Cuál es la mejor manera de ser verdadero en (1) consulta?
El \ no tiene un significado especial en SQL, excepto dentro de la condición del operador LIKE , donde se puede usar para escapar de los caracteres comodín.
Pero puede definir un carácter de escape diferente para LIKE que luego convierte a \ en un carácter "normal":
select 't\om' like '%t\om%' escape '#';editar
Como ha comentado Sunrelax, también puede usar una cadena vacía como secuencia de "escape":
select 't\om' like '%t\om%' escape '';\ es una secuencia de escape, por lo que también debe escapar:
select 't\om' like '%t\\om%';También hay una opción de configuración que puede establecer. Ver Escape de barra invertida en Postgresql