sql >> Databáze >  >> RDS >> PostgreSQL

Jak hledat, zda celé slovo existuje v řetězci v Postgresu

K tomu můžete použít regulární výraz:

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

Výše uvedené vrátí pouze hodnoty, kde phone nebo samsung jsou úplná slova. Modifikátory regulárního výrazu\m a \M aby se vzor shodoval pouze pro celá slova.

Operátor regulárního výrazu ~* nerozlišuje malá a velká písmena. Výše uvedený výraz vrátí Samsung Phone nebo Google Phone ale ne Sam's House .

Pokud chcete přidat další slova, stačí je přidat pomocí operátoru "or" |

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

Všimněte si, že tento druh vyhledávání nebude superrychlý. Regulární výrazy jsou drahé a nemohou využívat žádný index.



  1. dotaz vb.net pro zobrazení konkrétních řádků datové tabulky [základní]

  2. Další způsob, jak zlepšit dotaz SQL, aby se zabránilo sjednocení?

  3. Jaký je rozdíl mezi typy řetězců VARCHAR(255) a TINYTEXT v MySQL?

  4. Database Connection se neuvolní po vypršení nečinnosti v glassfish