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

как да приложим ефективен алгоритъм за търсене при използване на php и mysql база данни?

Няколко различни начина да направите това:

По-бързият (по отношение на производителността) е:select * FROM Table where keyword LIKE '%value%' Номерът в този е поставянето на %, който е заместващ знак, който казва или да търси всичко, което завършва или започва с тази стойност.

По-гъвкава, но (малко) по-бавна може да бъде функцията REGEXP:

Select * FROM Table WHERE keyword REGEXP 'value'

Това използва силата на регулярните изрази, така че можете да получите толкова сложни, колкото искате с него. Въпреки това, оставянето както по-горе ви дава нещо като „Гугъл на бедния човек“, което позволява търсенето да бъде части от общи полета.

Залепващата част идва, ако се опитвате да търсите имена. Например, всеки ще намери името "smith", ако сте търсили SMI. Въпреки това, нито един от тях няма да намери „Джон Смит“, ако има разделени поле за име и фамилия. Така че ще трябва да направите някаква конкатенация за търсенето, за да намерите Джон ИЛИ Смит ИЛИ Джон Смит ИЛИ Смит, Джон. От там наистина може да има снежна топка.

Разбира се, ако правите някакво разширено търсене, ще трябва да обусловите съответно заявката си. Така че, например, ако искате да търсите първи, последен, адрес, тогава вашата заявка ще трябва да тества за всеки:

SELECT * FROM table WHERE first LIKE '%value%' OR last LIKE '%value%' OR address LIKE '%value'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Задайте опция по подразбиране в падащото меню php и запазете при изпращане на заявка

  2. Безопасна ли е нишка на процедурата на MySQL?

  3. Как да се свържете сигурно с MySQL база данни с помощта на SQLalchemy?

  4. Как мога да върна числовите данни за полета на всички резултати, използвайки 1 mySQL заявка?

  5. MySQL:Създаване на нова таблица с информация от заявка