sql >> Database >  >> RDS >> Mysql

MYSQL Hoe twee woorden in een zin te matchen

De vraag:

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

geeft ook zinnen terug als:

  • "mysql school"
  • "mijn ouderwetse ouders"

Maar we willen ze niet.

Je kunt dit proberen:

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

Maar als je in de kolom mijnkolom zinnen hebt als:

  • Ik hou van mijn school!

je zou moeten nadenken over het toevoegen van een andere voorwaarde:

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


  1. Informix gelijk aan mysql's SHOW CREATE TABLE

  2. Een lijst met ondersteunde gebieden retourneren in Oracle

  3. relationele algebra

  4. SQL zoeken naar meerdere waarden in hetzelfde veld