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

Как да:Класиране на резултатите от търсенето

можете да постигнете това с една заявка, като използвате 'UNION ALL' в MySQL.

Просто прегледайте токените в PHP, създавайки UNION ALL за всеки токен:

например ако токените са 'x', 'y' и 'z', вашата заявка може да изглежда така

SELECT * FROM `entries` 
WHERE token like "%x%" union all 
    SELECT * FROM `entries` 
    WHERE token like "%y%" union all 
        SELECT * FROM `entries` 
        WHERE token like "%z%" ORDER BY score ect...

Клаузата за поръчка трябва да работи с целия набор от резултати като едно, което ви е необходимо.

По отношение на производителността няма да е толкова бързо (предполагам), но при базите данни основните разходи по отношение на скоростта често са изпращането на заявката към двигателя на базата данни от PHP и получаването на резултатите. С тази техника това се случва само веднъж вместо веднъж на токен, така че производителността ще се увеличи, просто не знам дали ще е достатъчно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо размерът на таблицата на InnoDB е много по-голям от очакваното?

  2. Mysql таблица със съставен индекс, но не първичен ключ

  3. Как да изтрия набор от записи наведнъж в MySQL?

  4. Как да сравня входните данни с mysql данни с php/sql?

  5. Вмъкването на JPA родител/подчинение води до изключение на MySQLIntegrityConstraintViolationException