Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL Comment faire correspondre deux mots dans une phrase

La requête :

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

renverra aussi des phrases comme :

  • "école mysql"
  • "mes parents de la vieille école"

Mais nous ne les voulons pas.

Vous pouvez essayer ceci :

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

Mais si dans la colonne mycolumn vous avez des phrases comme :

  • J'aime mon école !

vous devriez penser à ajouter une autre condition :

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