Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да търсите множество стойности, разделени със запетаи в mysql

Бих казал, че тук структурата на вашите данни не е правилна.

Би било по-добро решение да не съхранявате няколко стойности в едно поле, като използвате някакъв формат, разделен със запетая, а да използвате три таблици, дефинирани по следния начин:

  • searchtest
    • id
    • name
  • keywords
    • id
    • word
  • keywords_searchtest
    • id_keyword
    • id_searchtest


С това търсене на записи в searchtest които имат конкретни ключови думи биха били толкова прости като:

select searchtest.*, keywords.*
from searchtest
    inner join keywords_searchtest on keywords_searchtest.id_searchtest = searchtest.id
    inner join keywords on keywords.id = keywords_searchtest.id_keyword
where keywords.word = 'test2'


И освен това ще трябва да търсите записи в searchtest с конкретно име:

select *
from searchtest
where name = 'trophy1'


  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 таблица по две колони

  2. Получаване на грешка в PHP Предупреждение:fputcsv() очаква параметър 2 да бъде масив

  3. Glassfish не създава JDBC ресурси

  4. MySQL Case/If/Then

  5. Как да определя дали имам незаети записи в MySQL транзакция?