Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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 Яндекс.Метрика Яндекс цитирования