Поиск по подстроке в 3 полях типа CHAR

vsu7

Новичок
Поиск по подстроке в 3 полях типа CHAR

PHP5 + MySQL 4

Подскажите пожалуйста как организовать поиск по подстроке (т.е. чтобы поиск велся по не обязательно сначала строки) внутри этих 3 полей, можно для упрощения рассмотреть случай одного поля типа CHAR 40

table TEST1
pole POLE1
stroka STR1

select * from TEST1 where $pole1 like '%$str1%'

работает очень медленно в таблице из 250 000 строк.

Индексы в таком операторе не задействованы. Fulltext-поиск может искать только сначала строки . Может можно искать и в любом месте строки fulltext-поиском - но не знаю как это организовать.
Подскажите пожалуйста, если кто знает.

Спасибо.
 

vsu7

Новичок
Указанную статью читал.

Прошу прощения - может что-то не понимаю.
Вот запрос:

SELECT *
FROM test1
WHERE MATCH (
pole1, pole2, pole3
)
AGAINST (
'3677'
IN BOOLEAN
MODE
)
LIMIT 0 , 30

В pole1 встречаются значения
A3677ET05
A3677ET07
E3677ET08
E3679ET05

и т.п.

Вот эту подстроку внутри поля не находит.
Может надо по другому задать поиск?

Спасибо.
 

Кром

Новичок
fulltext создет индекс по словам. По ним и осуществляется поиск. В данном случе, у тебя фрагмент слова, который можно искать только через %%.
 

vsu7

Новичок
Значит в данном случае оператор
SELECT * FROM test1 WHERE MATCH ...
безполезен и придется довольствоваться медленным поиском.

Спасибо за информацию.
 

Кром

Новичок
Если ты ищешь только такие коды или какую-то информацию с одинаковой структурой, то можешь составить отдельную индексную таблицу, в которую вынести данные такого типа. И искать уже по этой таблице.
 
Сверху