поиск в MySQL

mobilnikua

Новичок
поиск в MySQL

Помогите пожалуйста! Не получается с поиском по MySQL.

запрос: select * from technomarket_shop_price where CONCAT(upper(producer),upper(REPLACE(model, \' \',\'\' ))) like upper("%'.$q.'%") ORDER BY price

Нужно найти фотоаппарат в таблице. Полное название: Canon POWERSHOT A510 - именно так его название в таблице.

Ищем: A510 - находит, Canon POWERSHOT A510 - находит, Canon A510 - не находит. Подскажите что нужно сделать чтобы и по последнему запросу находило. Заранее спасибо!
 

Profic

just Profic (PHP5 BetaTeam)
[Добавить пробел. Куда подумай сам.]
Опс. немного не то.

А, вообще, в поиск.
 

mobilnikua

Новичок
что тут мне можно добавить или изменить чтобы правильно искало? Неужели никто не может толково сказать?
 

mobilnikua

Новичок
в смысле?? Искать Canon%A510?? или что? объясни поподробнее пожалуйста
 

Profic

just Profic (PHP5 BetaTeam)
да
если тебе нужно, чтобы и A510 Canon находилось, то разбивай свой запрос на слова и ищи каждое отдельно с условием AND.

ЗЫ. Кстати зачем там тебе upper?
 

mobilnikua

Новичок
честно говоря ничего не понимаю.....ты мне можешь мой запрос подправить? а то это не я писал, а расхлебывать мне

-~{}~ 10.07.05 14:02:

ну что же вам жалко ребята? помочь просто......
 

Profic

just Profic (PHP5 BetaTeam)
Если нужно, чтобы находилось только по "Сanon A510", то запрос должен быть вида:
[sql]SELECT * FROM tbl WHERE CONCAT(producer, model) LIKE '%Canon%A510%'[/sql]

Если нужно чтобы находилось и по "Сanon A510", и по "A510 Сanon", то тут запросом не отделаешься. А запрос должен быть вида:
[sql]SELECT * FROM tbl WHERE CONCAT(producer, model) LIKE '%Canon%' AND CONCAT(producer, model) LIKE '%A510%'[/sql]

ЗЫ. Здесь помогают решаить проблемы, а не написать код. Код написать помогают (иногда) в другом месте (с) Кто-то с форума.
 
Сверху