Автор Тема: SQL выборка  (Прочитано 5942 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
SQL выборка
« : 21 Июня 2005, 14:49:25 »
ПОМОГИТЕ!...не могу перебороть такую вещь...
есть таблица например с двумя полями...такого вида

id|time
-------
10|4
33|5
32|7
55|9
1|10
52|12
52|14
66|16

....мне нужно например найти в ней поле с id 55 и все что оказалось ниже отсечь а остальное показать....можно ли это сделать с помошью только SELECT?

Оффлайн cr4ck3r

  • Фанат Perl
  • Постоялец
  • ***
  • Сообщений: 146
  • +0/-0
  • 2
    • Просмотр профиля
    • http://perlmonks.org.ru
SQL выборка
« Ответ #1 : 21 Июня 2005, 15:30:50 »
В смысле ниже? Меньше 55? Тогда так:
SELECT * FROM table WHERE id>55; покажет все что больше 55.
Ворота в perl - perlmonks.org.ru

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
SQL выборка
« Ответ #2 : 21 Июня 2005, 18:03:25 »
не...если бы все было так просто :)...допустим есть переменная $id=55...т.е. надо каким то образом сделать так чтобы вон в той таблице, что вверху, все что находится ниже этого значения!..т.е. надо сравнивать напрямую...а не > or <, то отсекается...в общем нашел он запись с этим ID и оставляется только это:
10|4
33|5
32|7
55|9

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
SQL выборка
« Ответ #3 : 22 Июня 2005, 01:36:42 »
Dart Sidius,
1. причём здесь перл?
2. без условия ORDER BY всё что ты написал - бред
3. в каждом предложении должно быть подлежащее и сказуемое. Если не получается составить грамотно предложение, набирай в ворде - он подчёркивает.
4. из набора слов, которые ты написал понятно, что ORDER BY тебе поможет.
Ну к чему все это, лучше бы водки выпили...

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
SQL выборка
« Ответ #4 : 22 Июня 2005, 02:28:55 »
Не поможет...раз не понимаешь то объсню для умников ещё раз:
1. Есть таблица id|time
-------
10|4
33|5
32|7
55|9
1|10
52|12
52|14
66|16

2. Есть переменная $ID=55
3. Нужно перейти по этой таблице на id=55 а потом с помощью LIMIT отрезать все что ниже id=55...т.е. оставить только
10|4
33|5
32|7
55|9

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

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
SQL выборка
« Ответ #5 : 22 Июня 2005, 08:40:54 »
Цитировать
можно ли с помощью одного запроса все это сделать?

Можно. Если при составлении таблицы id будет выполнять ту функцию, которую должен, а не ту ерунду, которая у тебя.
Вот скажи, если у тебя этот твой $id=52, то тебе где надо отсечь?
И про ORDER BY почитай, не зря тебе говорят.

В таблице не бывает "выше и ниже" без условия. Видишь ли, это ты решил, что "ниже" - это если id, идущие после 55. Это бред. Всегда, если хочется говорить о "выше" и "ниже", надо говорить о сортировке по какому-то полю. Тебе надо добавить еще одно уникальное поле. Или этот "id" пересмотреть.

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
SQL выборка
« Ответ #6 : 22 Июня 2005, 11:18:10 »
ну блин...чё вы все усложняете...ладно вот в данном случает отсортировано по ORDER BY time
id|time
-------
10|4
33|5
32|7
55|9
1|10
52|12
53|14
66|16
....как теперь оставить только то что выше id=55
id|time
-------
10|4
33|5
32|7
55|9

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
SQL выборка
« Ответ #7 : 22 Июня 2005, 11:39:35 »
понятие "выше-ниже" без сортировки не имеет смысла.
равно как не имеет смысла заниматься программированием нашему дорогому предводителю ситхов.

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
SQL выборка
« Ответ #8 : 22 Июня 2005, 12:55:27 »
SELECT id, time FROM table WHERE time=<(SELECT time FROM table WHERE id=55);
и не занимайся кроспостингом...
And no religion too...

Оффлайн Dart Sidius

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 69
  • +0/-0
  • 0
    • Просмотр профиля
    • http://khv.rhk.ru
SQL выборка
« Ответ #9 : 22 Июня 2005, 14:34:07 »
commander: что-то не получается по твоему запросу...не может он так :(

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
SQL выборка
« Ответ #10 : 22 Июня 2005, 14:57:13 »
MySQL<4.1?

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
SQL выборка
« Ответ #11 : 22 Июня 2005, 16:14:20 »
Dart Sidius
не поддерживаються подзапросы... это повод подумать о переходе на новую версию БД...
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28