2010-04-22 3 views

ответ

4
SELECT * FROM `my_table` WHERE name LIKE '%my_search_term%' 

или

SELECT * FROM `my_table` WHERE CONTAINS(name, 'search') 

Но следует помнить, что LIKE заявление очень дорого. Если вы просматриваете много текста, вы можете рассмотреть возможность использования Sphinx для примера.

+0

Я раньше не слышал о Сфинксе. Вот ссылка: http://sphinxsearch.com/ – JYelton

+0

Да, должно быть, это было связано. Это очень мощно, вы заполняете индексы Sphinx из MySQL (например, где я работаю, мы обновляем Sphinx каждые 2 часа), и после этого очень просто. В PHP есть клиент Sphinx: http://php.net/manual/en/book.sphinx.php Очень прост в использовании, и он намного быстрее, чем MySQL для текстового поиска. – Mikushi

2

Несомненно. Существует CONTAINS предикат:

... WHERE CONTAINS(name, 'search-term') 

Существует также оператор LIKE и некоторые СУБД позволяют регулярные выражения.

1

Это звучит как то, что вы ищете LIKE

-- Get all people with phone numbers starting with 920 
SELECT * FROM People WHERE PhoneNumber LIKE '920%' 
Смежные вопросы