SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.11.2010 14:55:07

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Простой запрос с BETWEEN

Вот это работает корректно:

SELECT id, title, tieser, midi, view FROM node WHERE id BETWEEN '487' AND '494' ORDER BY view DESC


Нужно к этому выбрать ещё один id:

SELECT id, title, tieser, midi, view FROM node WHERE id ='147' AND id BETWEEN '487' AND '494' ORDER BY view DESC


Вроде все варианты перепробовал, ничего не выбирает, либо выдаёт ошибку синтаксиса.
Что делаю не так?
Заранее спасибо.

Отредактированно Doxtor (09.11.2010 14:56:58)

Неактивен

 

#2 09.11.2010 15:01:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Простой запрос с BETWEEN

id не может быть равным 147 и при этом находиться в интервале (487,494) wink

WHERE id ='147' OR id BETWEEN '487' AND '494'

Неактивен

 

#3 09.11.2010 15:13:19

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Простой запрос с BETWEEN

Почти получились.
Сейча обьясню.
В процессе шаманства заметил, что при запросе:

SELECT id, title, tieser, midi, view FROM node WHERE id IN('147','487','488', ... '494') ORDER BY view DESC

Первый id из запроса не выводится.

Тоже самое и при:

WHERE id ='147' OR id BETWEEN '487' AND '494'

Возвращает : 487 - 494

добавляю любой сушествующий id:

WHERE id= '6' OR id ='147' OR id BETWEEN '487' AND '494'
Возвращает : 147, 487 - 494

Просто интересно почему, вроде же не должно так быть?

Ещё раз спасибо.

Отредактированно Doxtor (09.11.2010 15:13:37)

Неактивен

 

#4 09.11.2010 17:27:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Простой запрос с BETWEEN

Так не бывает. Или Вы пишете запрос не целиком (например, LIMIT какой-то),
или клиентское приложение плохое (например, используете какой-нибудь кли-
ент php, который отъедает первую строку), или база побилась. Последнее
наименее вероятно, но на всякий случай — REPAIR TABLE node.

Неактивен

 

#5 09.11.2010 18:11:12

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Простой запрос с BETWEEN

Бывает.
Если два раза написать:

if(mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);


Опять чему-то научился благодаря Вам и вашему форуму.
Продолжаю жать на рекламу.
Удачи.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson