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

Policz liczbę dopasowań LIKE na wpis

W MySQL wyrażenia logiczne mogą być używane jako liczby całkowite — z 0 oznacza fałsz, a 1 oznacza prawdę. Tak więc działają następujące:

SELECT p.*,
       ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM   myprods p
WHERE  name LIKE '%samsung%' OR name LIKE '%galaxy%' OR name LIKE '%s4%';

EDYCJA:

W przypadku MySQL możesz również wyrazić to zapytanie jako:

SELECT p.*,
       ((name LIKE '%samsung%') + (name LIKE '%galaxy%') + (name LIKE '%s4%')) as hits
FROM   myprods p
HAVING hits > 0;

Użycie having w tym kontekście jest rozszerzeniem SQL i nie działa w innych bazach danych. Pozwala jednak zapytaniu odnosić się do aliasu kolumny w celu filtrowania, bez użycia podzapytania.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Utwórz tabelę za pomocą instrukcji sql za pomocą executeUpdate w Mysql

  2. czy istnieje opcja automatycznej aktualizacji dla DateTimeField w peewee, np. TimeStamp w MySQL?

  3. Utwórz tabelę w MySQL

  4. MySQL LIKE vs LOCATE

  5. Rejestruj każde zapytanie MySQL w pliku, włączając opcję Logowanie ogólne w MAMP