Поиск по двум полям, как единому

Александр

Новичок
Поиск по двум полям, как единому

Мучаюсь с построением запроса при организации поиска.
Суть проблемы следующая:

'product'
'product_name' | 'product_brand_id'

'brand'
'brand_id' | 'brand_name'

Задача объеденить brand_name и product_name, после чего подставить в like.
В нынешнем варианте поиск происходит только по полю product_name.

Запрос:
PHP:
<?
$result=mysql_query("SELECT * FROM product,brand WHERE product_brand_id=brand_id and (product_name LIKE '%". str_replace(" ", "%' and product_name LIKE '%", $search). "%')");
?>
на практике поиск фразы "Samsung 550" такой запрос выводит результат 0, при условии поиска совпадения всех слов.

Как правильно построить запрос?

Благодарю за помощь.
 

b-d

Новичок
Мдя. Попробую вслепую (не проверяя):

Код:
    ... WHERE (product_brand_id = brand_id) AND (CONCAT(product_name, brand_name) LIKE $search);
Только вот не надо это напрямик подставлять к себе под кавычки.. Может и не сработать.. хех.
 

Александр

Новичок
Код:
    ... WHERE (product_brand_id = brand_id) AND (CONCAT(product_name, brand_name) LIKE $search);
Спасибо!
Реализовал так:
PHP:
$result=mysql_query("SELECT * FROM product,brand WHERE product_brand_id=brand_id and (CONCAT_WS(' ',brand_name,product_name) LIKE '%". str_replace(" ", "%' $logic (CONCAT_WS(' ',brand_name,product_name)) LIKE '%", $search). "%')");
 

Александр

Новичок
Автор оригинала: Wicked
А чем не устроил mysql-евский fulltext?

И возможно эта тема покажется очень знакомой:
http://phpclub.ru/talk/showthread.php?threadid=90910
Эту тему видел, но посчитал не раскрытой для себя.
fulltext не годится потому как он ищет точное совпадение, а этого в данном случае не надо.
пример:
Ищем ws-32z30.

В базе:
ws-32z30 HEQ
ws-32z30HEQ
ws-32z30SSQ

на сколько я понимаю фултекст выдаст "ничего не найдено", т.к. ищет точное совпадение слов в ячейки?
Или я ошибаюсь?
 
Сверху