Склеивание двух полей в MySQL запросе для задания общего условия к ним. Возможно ли?

CjEcho

Новичок
Склеивание двух полей в MySQL запросе для задания общего условия к ним. Возможно ли?

Генерируется следующий запрос:

SELECT * FROM main_tbl WHERE caption LIKE '%слово_1%' OR caption LIKE 'слово_2' OR info LIKE '%слово_1%' OR info LIKE '%слово_2%'

Возможно ли каким-то образом склеить 2 поля в запросе для задания общего условия к ним.

Ну что-то наподобие такого:

SELECT * FROM main_tbl WHERE caption+info LIKE '%слово_1%' OR caption+info LIKE 'слово_2'

ps1.. Соответственно знак "+" я указал для понимания...существует ли какая либо функция, или может быть GROUP_CONCAT() мне поможет, только каким образом это реализовать.

ps2.. На php механизм формирования запроса следующий (во избежании некоторых вопросов):

PHP:
$search_words="слово_1 слово_2"; // слов может быть произвольно много, либо 1 

$query = "SELECT * FROM main_tbl WHERE caption LIKE '%". str_replace(" ", "%' OR caption LIKE '%", $search_words). "%' OR info LIKE '%". str_replace(" ", "%' OR info LIKE '%", $search_words). "%'";
 

weregod

unserializer
для убиения производительности и
Код:
WHERE [URL=http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat]CONCAT[/URL] (..) LIKE ..
сойдёт
 

CjEcho

Новичок
Спасибо, решил задачу данным способом:

SELECT * FROM `main_tbl` WHERE CONCAT_WS(' ', `caption`, `info `) LIKE '%слово_1%' OR CONCAT_WS(' ', `caption`, `info `) LIKE 'слово_2'

Знаю, что убивает производительность. Но использовать полнотекстовый поиск или создавать отдельную таблицу (поле) не решился из за маленького объема самой таблицы (16+64)x2[UTF-8] bytes * ~300 записей.
 
Сверху