2011-02-09 20 views
56

este momento tengo la siguiente consulta:El uso de expresiones regulares en WHERE en Postgres

select regexp_matches(name, 'foo') from table; 

¿Cómo puedo volver a escribir esto para que la expresión regular es en el donde como el siguiente (no funciona):

select * from table where regexp_matches(name, 'foo'); 

mensaje de error actual es: eRROR: argumento de dónde debe ser de tipo booleano, no escribir texto [] estado SQL: 42804 Carácter: 29

Respuesta

94

Escriba su lugar:

select * from table where name ~ 'foo' 

El operador '~' produce un resultado booleano de si los partidos de expresiones regulares o no en lugar de la extracción de los subgrupos correspondientes.

36

sólo tiene que utilizar el operador partido allí:

select * from table where name ~ 'foo'; 
Cuestiones relacionadas