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

MySQL zwraca dokładne dopasowanie słów z treści tekstowej

Prawidłowa odpowiedź to prawdopodobnie wyszukiwanie pełnotekstowe.

Istnieją jednak dwa zastrzeżenia. Jeśli masz krótkie ciągi znaków, takie jak opisy produktów lub komentarze użytkowników, i chcesz użyć like , możesz zrobić coś takiego:

where concat(' ', txt, ' ') like concat('% ', $word, ' %')

Zakłada się jednak, że ograniczniki są spacjami. Więc nie znalazłby "Hello". Możesz to naprawić, wykonując:

where concat(' ', replace(txt, ',' ' '), ' ') like concat('% ', $word, ' %')

Ale szybko przekonasz się, że jest to uciążliwe. Stąd:wyszukiwanie pełnotekstowe.

Po drugie, jeśli naprawdę przechowujesz słowa kluczowe w kolumnie, rozwiązanie jest prostsze. Nie rób tego. Utwórz tabelę skrzyżowań, która ma jeden wiersz na oryginalny wiersz tabeli i jeden na słowo kluczowe. Przechowywanie list w łańcuchach to zły pomysł w SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL wyjaśnia rozumienie zapytań

  2. Jak utworzyć tabelę przestawną w MySQL

  3. utf8mb4_unicode_ci vs utf8mb4_bin

  4. Automatyczne tworzenie bazy danych springboot i mysql

  5. TIME_FORMAT() Przykłady – MySQL