SQL-запрос для поиска

dimases

Новичок
SQL-запрос для поиска

Нужно произвести оценку релевантности поискового запроса. Я пытаюсь жто сделать так:
SELECT * ,
name like '%зая%'
as xx,
name like '%соб%'
as yy,
name like '%плюш%'
as zz
FROM items

На этот запрос он выводит мне все записи из таблицы с добавление столбцов xx,yy и zz в каждой строке с 1 - если имеется вхождение - 0 - нет, например:
PHP:
Заяц средний в комбинезоне                             1 0 0 
Собака из меха "иголка"в плюш. одежде-3цв. 0 1 1
очень хотелось бы для оценки релевантности просто взять и сложить xx+yy+zz = какое-нибудь aa

Но, как я понял, MySQL не видит еще не созданных алиасов, то есть я не могу дописать (xx+yy+zz) AS aa

Какие есть другие способы решения, подскажите?
 

ForJest

- свежая кровь
[sql]
SET @xx:= 0, @yy:=0, @zz:=0, @aa:=0;
SELECT * ,
(@xx:=name like '%зая%')
as xx,
(@yy:=name like '%соб%')
as yy,
(@zz:=name like '%плюш%')
as zz,
(@aa := @zz+@yy+@xx) as aa
FROM items

[/sql]
 

dimases

Новичок
Отлично, все работает =)!

Только вот без этого:
SET @xx := 0,
@yy := 0,
@zz := 0,
@aa := 0;
Видимо инициализировать переменные не обязательно, а PHP блокирует два запроса. Вообщем, без инициализации все выводит, а с ней - пустой результат, выполнялось из phpMyAdmin
 

csa

Guest
Автор оригинала: dimases
PHP блокирует два запроса. Вообщем, без инициализации все выводит, а с ней - пустой результат, выполнялось из phpMyAdmin
в течение одного коннекта к бд можно послать это 2-мя запросами и все должно работать
насчет phpMyAdmin подумай сам :)
 

ForJest

- свежая кровь
проапдейть phpMyAdmin.
Я отлаживал подобные запросы. Если первым идёт SET то всё нормально выдаётся.
Вообще инициализация была по привычке - в данном случае она действительно не нужна.
 

dimases

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

-~{}~ 29.04.04 16:45:

Кром
Здесь читал: http://dev.mysql.com/doc/mysql/ru/Fulltext_Search.html
Конечно читал, тока это корректно с BOOLEAN MODE реализовано в 4 версии, а хостера с ней еще надо поискать?

Или вы предложите мне отбросить проверку на вхождение слов фрагментов? Тогда это будет не поиск а фигня какая-то =)
 
Сверху