Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MYSQL Jak dopasować dwa słowa w zdaniu

Zapytanie:

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

zwróci również zdania takie jak:

  • "szkoła mysql"
  • "moi rodzice ze starej szkoły"

Ale my ich nie chcemy.

Możesz spróbować tego:

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

Ale jeśli w kolumnie mycolumn masz zdania takie jak:

  • Kocham moją szkołę!

powinieneś pomyśleć o dodaniu kolejnego warunku:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podstawy kluczy obcych w MySQL?

  2. Błąd MySQL:nie można dodać ograniczenia klucza obcego?

  3. Pusta lista parametrów klauzuli IN w MySQL

  4. Połącz 2 zapytania SELECT LEFT JOIN, łączenie/deklarowanie jako nie działa

  5. Czy można wstawić dane w dwóch różnych tabelach w mysql za pomocą jednego zapytania php?