[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос на выборку
kuzroman
Есть запрос:


$searchArr = explode(" ", "МОСКВА ЦИФРОВОЙ");

$select= " SELECT * FROM `itbrand_templ_10` ";
if($search){
$select.= " WHERE ";
for( $i= 0, $col= count($searchArr); $i<$col; $i++ )
{
if($i>0) $select.=" or ";
$select.= " `data37` LIKE '%$searchArr[$i]%' ";
$select.= " or `data39` LIKE '%$searchArr[$i]%' ";
$select.= " or `data40` LIKE '%$searchArr[$i]%' ";
$select.= " or `data41` LIKE '%$searchArr[$i]%' ";
}
}

$select.= " ORDER BY `data38` ";

как видно мы находим все совпадения в полях, и сортируем по data38.
выводятся совпадения как по одному слову, так и по 2м, но все по порядку, как они были найдены.

Подскажите что нужно сделать чтобы наиболее точнй запрос выводился первым.
Под наиболее точным понимается совпадение по 2м словам.



Спустя 1 час, 10 минут, 48 секунд (30.11.2011 - 15:16) SlavaFr написал(а):
order by (if(`data39` LIKE '%$searchArr[$i]%',1,0) + if(`data40` LIKE '%$searchArr[$i]%',1,0) + ..........)

Спустя 18 минут, 16 секунд (30.11.2011 - 15:34) Placido написал(а):
Так:
SELECT * FROM `itbrand_templ_10` 
WHERE `data37` LIKE '%$searchArr[$i]%' and `data39` LIKE '%$searchArr[$i]%'
UNION
SELECT
* FROM `itbrand_templ_10`
WHERE `data37` LIKE '%$searchArr[$i]%' or `data39` LIKE '%$searchArr[$i]%';
а если нужно, чтобы результаты, найденные по одному полю, сортировались по `data38`, то так:
SELECT * FROM `itbrand_templ_10` 
WHERE `data37` LIKE '%$searchArr[$i]%' and `data39` LIKE '%$searchArr[$i]%'
UNION
SELECT
* FROM (SELECT * FROM `itbrand_templ_10`
WHERE `data37` LIKE '%$searchArr[$i]%' or `data39` LIKE '%$searchArr[$i]%'
ORDER BY `data38`) `t`,

Спустя 13 минут, 41 секунда (30.11.2011 - 15:48) kuzroman написал(а):
Всем спасибо, пока сделал, два запроса, сейчас проверим остальные.

Спустя 16 минут, 12 секунд (30.11.2011 - 16:04) kuzroman написал(а):
Цитата (SlavaFr @ 30.11.2011 - 12:16)
order by (if(`data39` LIKE '%$searchArr[$i]%',1,0) + if(`data40` LIKE '%$searchArr[$i]%',1,0) + ..........)

А немоглибы описать что делает ваша сортировка?
У меня она конечно что то выводит, но далеко не то что нужно)


_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.