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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Помогите составить правильно запрос
 
 автор: OLi   (14.12.2011 в 02:04)   письмо автору
 
 

Сейчас он такой:

SELECT * FROM `pages` WHERE (code like '%,506%' OR code like '%506%') OR (code like '%,282%' OR code like '%282%') OR (code like '%,506%' OR code like '%506%')


Возвращает из базы 1 запись, а должен 3 по каждому OR
Как его модифицировать?

  Ответить  
 
 автор: cheops   (14.12.2011 в 04:06)   письмо автору
 
   для: OLi   (14.12.2011 в 02:04)
 

А почему три, если 506 в первом блоке совпадает с 506 в последнем? Тогда получается два уникальных числа? Или какое-то из чисел повторяется два раза?

  Ответить  
 
 автор: OLi   (14.12.2011 в 16:56)   письмо автору
 
   для: cheops   (14.12.2011 в 04:06)
 

Да, должны выводиться и повторения

  Ответить  
 
 автор: cheops   (14.12.2011 в 18:00)   письмо автору
 
   для: OLi   (14.12.2011 в 16:56)
 

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

  Ответить  
 
 автор: kosta_in_net   (15.12.2011 в 18:06)   письмо автору
 
   для: cheops   (14.12.2011 в 18:00)
 

Запрос вообще странный:
WHERE
(code like '%,506%' OR code like '%506%') OR
(code like '%,282%' OR code like '%282%') OR
(code like '%,506%' OR code like '%506%')
1) первое и последнее условие одинаковы
2) code like '%,506%' OR code like '%506%' можно было бы записать как code like '%506%'
По идее запрос должен выглядеть так:
SELECT * FROM `pages` WHERE
code like '%506%' OR code like '%282%'

  Ответить  
 
 автор: cheops   (15.12.2011 в 18:14)   письмо автору
 
   для: kosta_in_net   (15.12.2011 в 18:06)
 

У меня подозрение, что он изначально таким и был, а доп-условия появились в попытке растормошить базу данных, чтобы она выдала нужное...

  Ответить  
 
 автор: kosta_in_net   (15.12.2011 в 18:16)   письмо автору
 
   для: cheops   (15.12.2011 в 18:14)
 

А может в базе реально только одна соответствующая запись, но ее нужно вывести трижды, и человек не знает, что для этого базу нужно джонить к самой себе?

  Ответить  
 
 автор: cheops   (15.12.2011 в 19:18)   письмо автору
 
   для: kosta_in_net   (15.12.2011 в 18:16)
 

Ну, OLi говорит, что видит, вообще хорошо бы дамп увидеть, чтобы ситуацию можно было воспроизвести, наверняка не очень сложно, тем более ошибка воспроизводится, значит её можно быстро отладить.

  Ответить  
Rambler's Top100
вверх

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