Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Объединить логику

Сообщения:  [1-10]    [11-20]  [21-28] 

 
 автор: winflip   (18.06.2009 в 16:10)   письмо автору
 
   для: Trianon   (18.06.2009 в 15:32)
 

Спасибо. Просто я ступил. Теперь буду корректнее ставить проблему.

  Ответить  
 
 автор: Trianon   (18.06.2009 в 15:34)   письмо автору
 
   для: winflip   (18.06.2009 в 12:02)
 

чем больше слов совпадает это не то же самое, что и чем больше условий выполняется.
Общее впечатление такое, что Вам нужен полнотекстовый поиск.
А это совсем другое.

  Ответить  
 
 автор: Trianon   (18.06.2009 в 15:32)   письмо автору
 
   для: winflip   (18.06.2009 в 10:40)
 

WHERE a | b | с
ORDER BY (a) + (b) + (c) DESC

  Ответить  
 
 автор: winflip   (18.06.2009 в 12:02)   письмо автору
 
   для: winflip   (18.06.2009 в 10:40)
 

В общем надо сделать запрос на поиск трех слов в поле shot. Необходимо чтобы хотя бы одно слово присутствовало в строке. Поиск сделать лайком. И отсортировать: чем больше слов совпадает тем строка выше. Вот собственно и все.

  Ответить  
 
 автор: winflip   (18.06.2009 в 10:40)   письмо автору
 
   для: Trianon   (18.06.2009 в 10:29)
 

Я разве сказал что это должно пахать. Я просто спрашиваю как можно написать работающий запрос такого типа. Порядок.
1) строки где истинны все 3 условия
2) строки где 2 условия истинны
3) строки где хотя бы одно условие истинно. Условия заданы в форме LIKE

  Ответить  
 
 автор: Trianon   (18.06.2009 в 10:29)   письмо автору
 
   для: winflip   (18.06.2009 в 10:18)
 

При чем здесь первый запрос?
В каком порядке Вы хотите получать строки?
Почему Вы полагаете что в запросах можно просто менять одни части на другие, и всё будент пахать?

  Ответить  
 
 автор: winflip   (18.06.2009 в 10:18)   письмо автору
 
   для: Trianon   (18.06.2009 в 09:58)
 

SELECT * FROM sites WHERE (shot LIKE '%авва%') OR (shot LIKE '%мы%') ORDER BY (shot LIKE '%авва%')  XOR (shot LIKE '%мы%')

Этот запрос возвращает результат то, что надо. Но мне необходимо ещё сделать запрос что-то вроде
SELECT * FROM sites WHERE (shot LIKE '%авва%') OR (shot LIKE '%мы%') OR (shot LIKE '%слово3%') ORDER BY (shot LIKE '%авва%')  XOR (shot LIKE '%мы%') XOR (shot LIKE '%слово3%')

Я сперва так и сделал, но как Вы уже говорили два раза употреблять XOR нельзя, действительно сортировка не работает. Каким аналогом можно заменить
ORDER BY (shot LIKE '%авва%')  XOR (shot LIKE '%мы%') XOR (shot LIKE '%слово3%')
?

  Ответить  
 
 автор: Trianon   (18.06.2009 в 09:58)   письмо автору
 
   для: winflip   (18.06.2009 в 09:45)
 

посоветую задать вопрос более корректно.

  Ответить  
 
 автор: winflip   (18.06.2009 в 09:45)   письмо автору
 
   для: Trianon   (18.06.2009 в 00:55)
 

А что Вы можете посоветовать?

  Ответить  
 
 автор: 5645   (18.06.2009 в 01:07)
 
   для: Trianon   (18.06.2009 в 00:55)
 

Да, получилась чушь.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-28] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования