2012-06-23 3 views
0

Я хочу создать функцию поиска на моем сайте, которая вернет строки в строках. Например: если в базе данных SQL была запись, где значение столбца было «Мое имя - Гарри Поттер», пользователь мог бы искать «Гарри П» или «Отт» или «Мое имя», и запись в результатах поиска.SQL-поиск строки в строке

+1

Вы должны хотя бы принять ответ, когда будете удовлетворены. –

ответ

1

LIKE функция.

SELECT * FROM myTable WHERE myName LIKE '%Harry P%' 

SELECT * FROM myTable WHERE myName LIKE '%ott%' 

SELECT * FROM myTable WHERE myName LIKE '%My Name%' 

Здесь я предположить myName это имя поля, которое у вас есть в вашей базе данных & myTable это имя таблицы.

В PHP, ваш запрос должен быть

SELECT * FROM myTable WHERE myName LIKE '%$yourWord%' 
2

использовать это в SQL:

SELECT * FROM `table` WHERE title LIKE '%$search_word%' 
+0

Отлично! Спасибо. – Proffesor

+0

+1 уделяя внимание прикрепленной теге – Rab

1

Если таблица/будет мало, то заявление с LIKE '%word%' будет хорошо.

Возможно, у вас может возникнуть соблазн использовать таблицу MyISAM для использования индекса Fulltext, this is possible in InnoDB too. Это будет немного сложнее реализовать таким образом, но он будет сочетать высокопроизводительный текстовый поиск, который предлагает MyISAM со всеми преимуществами InnoDB (транзакции, блокировка на уровне строк и т. Д.).

1
select * from your_table 
where instr(some_column, 'string_to_search') > 0 
Смежные вопросы