sql >> Database teknologi >  >> RDS >> Mysql

MYSQL Sådan matcher du to ord i en sætning

Forespørgslen:

SELECT * 
FROM mytable 
WHERE mycolumn LIKE "%my%" 
and mycolumn LIKE "%school%";

vil også returnere sætninger som:

  • "mysql-skole"
  • "mine oldschool-forældre"

Men vi vil ikke have dem.

Du kan prøve dette:

SELECT * 
FROM mytable 
WHERE mycolumn regexp ' my |^my | my$'
and mycolumn regexp ' school |^school | school$'

Men hvis du i kolonnen mycolumn har sætninger som:

  • Jeg elsker min skole!

du bør overveje at tilføje en anden betingelse:

SELECT * 
FROM mytable 
WHERE mycolumn regexp ' my |^my | my$'
and mycolumn regexp '[^a-zA-Z]school[^a-zA-Z]|^school | school$'


  1. PostgreSQL-streamingreplikering - et dybt dyk

  2. To PLSQL-sætninger med start og slut, kører fint hver for sig, men ikke sammen?

  3. mysql konverterer flere rækker til kolonner i en enkelt række

  4. Hentning af alle børn (og deres børn) af en given overordnet node i en MySQL/MariaDB relationstabel