Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 15.06.2004, 23:43
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 21  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
order by (case ... ) rate from ... order by rate
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 16.06.2004, 00:44
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 22  
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Что то не очень понял как применять этот RAte...и в документации не нашел....



...order by (case
when ((full_name LIKE '%игорь гончаров%')
OR
(address LIKE '%игорь гончаров%'))
then 1
when ((full_name LIKE '%игорь%' OR full_name LIKE '%гончаров%')
OR
(address LIKE '%игорь%' OR address LIKE '%гончаров%'))
then 2
else 3 end
)

Вот например когда БД вывела результаты для первого условия И начинает выводить результаты уже для

then 1
when ((full_name LIKE '%игорь%' OR full_name LIKE '%гончаров%')
OR
(address LIKE '%игорь%' OR address LIKE '%гончаров%'))


Можно ли как то это засечь и и уже для результатов этого условия писать НЕСТРОГОЕ СООТВЕТСТВИЕ?

Старый 16.06.2004, 03:30
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 23  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
надеюсь Crazy опять не расплачится =)

Код:
select table_1.*, 
(case 
when ((full_name LIKE '%игорь гончаров%') 
OR
(address LIKE '%игорь гончаров%'))
then 1
when ((full_name LIKE '%игорь%' OR full_name LIKE '%гончаров%')
OR
(address LIKE '%игорь%' OR address LIKE '%гончаров%'))
then 2
else 3 end
) as rate 
where rate < 3
order by rate;
И потом смотриш поле rate. Если оно 1 значит совпадение полное. Если 2 то неполное. Кстати, зачем full_name LIKE '%игорь гончаров%'? Не легче-ли написать full_name = 'игорь гончаров'?

Старый 16.06.2004, 12:39
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 24  
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Цитата:
Оригинал написал(а) kompadre
надеюсь Crazy опять не расплачится =)

Код:
select table_1.*, 
(case 
when ((full_name LIKE '%игорь гончаров%') 
OR
(address LIKE '%игорь гончаров%'))
then 1
when ((full_name LIKE '%игорь%' OR full_name LIKE '%гончаров%')
OR
(address LIKE '%игорь%' OR address LIKE '%гончаров%'))
then 2
else 3 end
) as rate 
where rate < 3
order by rate;
И потом смотриш поле rate. Если оно 1 значит совпадение полное. Если 2 то неполное. Кстати, зачем full_name LIKE '%игорь гончаров%'? Не легче-ли написать full_name = 'игорь гончаров'?

full_name LIKE '%игорь гончаров%' - это просто для примера...не обращайте внимание.....

Последний запрос не работает...все время пишет эту ошибку.
Помогите пожалуйста...Честно говоря что то конструкцию последнего запроса не очень понял...

Старый 16.06.2004, 19:16
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 25  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Я эта ... забыл написать from table_1 после as rate

Старый 16.06.2004, 19:56
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 26  
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Цитата:
Оригинал написал(а) kompadre
Я эта ... забыл написать from table_1 после as rate

Все равно ошибку дает...Посмотрте плз...

Ошибка

SQL-запрос :

SELECT tab_1. * , (


CASE WHEN (
(
tab_1.full_name
LIKE '%игорь гончаров%'
) OR (
tab_1.address
LIKE '%игорь гончаров%'
)
)
THEN 1
WHEN (
(
tab_1.full_name
LIKE '%игорь%' OR tab_1.full_name
LIKE '%гончаров%'
) OR (
tab_1.address
LIKE '%игорь%' OR tab_1.address
LIKE '%гончаров%'
)
)
THEN 2
ELSE 3
END
) AS rate
FROM `t1` tab_1
WHERE rate < 3
ORDER BY rate
LIMIT 0 , 30

Ответ MySQL:


Unknown column 'rate' in 'where clause'

Старый 16.06.2004, 19:59
kompadre вне форума Посмотреть профиль Отправить личное сообщение для kompadre Найти все сообщения от kompadre
  № 27  
kompadre
 
Аватар для kompadre

Регистрация: Aug 2001
Адрес: Barcelona
Сообщений: 1,277
Отправить сообщение для kompadre с помощью ICQ
Банзаааай
Код:
SELECT tab_1. *, 
(CASE WHEN (
(
tab_1.full_name
LIKE '%игорь гончаров%'
) OR (
tab_1.address
LIKE '%игорь гончаров%'
)
)
THEN 1 
WHEN (
(
tab_1.full_name
LIKE '%игорь%' OR tab_1.full_name
LIKE '%гончаров%'
) OR (
tab_1.address
LIKE '%игорь%' OR tab_1.address
LIKE '%гончаров%'
)
)
THEN 2 
ELSE 3 
END 
) AS rate
FROM `t1` tab_1
HAVING rate < 3
ORDER BY rate
LIMIT 0 , 30

Создать новую тему   Часовой пояс GMT +4, время: 17:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.