sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo buscar si existe una palabra completa en una cadena en Postgres

Puedes usar una expresión regular para esto:

where title ~* '(\mphone\M)|(\msamsung\M)'

Lo anterior solo devuelve valores donde phone o samsung son palabras completas. Los modificadores de expresiones regulares \m y \M haga que el patrón solo coincida con palabras completas.

El operador de expresiones regulares ~* hace que esto no distinga entre mayúsculas y minúsculas. La expresión anterior devolvería Samsung Phone o Google Phone pero no Sam's House .

Si desea agregar más palabras, simplemente agréguelas usando el operador "o" |

where title ~* '(\mphone\M)|(\msamsung\M)|(\mbhat\M)'

Tenga en cuenta que este tipo de búsqueda no será muy rápida. Las expresiones regulares son caras y no pueden hacer uso de ningún índice.