05.01.2010, 05:14 | #1 |
Особый статус
|
Помогите составить запрос mysql
Чего-то все никак не могу родить запрос, выдающий массив строк... Вкратце: есть список id, нужно достать из таблицы table строки, включающие эти id. Что-то типа
Код:
SELECT * FROM `table` WHERE id=(1 AND 11 AND 77) В общем, камрады, помогите сконструировать запрос! |
05.01.2010, 05:21 | #2 |
Новичок
|
список id в массиве? впринципе запрос почти пральный, только вместо AND надо заюзать OR
Если запросов будет много и разные иды будут подставляться, то можно циклом автоматизировать составление вот этого куска строки: Код:
1 AND 11 AND 77 Последний раз редактировалось stasilok; 05.01.2010 в 05:25. Причина: о_О |
05.01.2010, 05:55 | #3 |
Особый статус
|
Выдает то же, что и при AND, а именно: строку с id 1.
|
05.01.2010, 06:38 | #4 |
Специалист
|
на примере моей таблицы
Код:
SELECT * FROM `vdk_articles` WHERE `ID` IN ( 80, 81, 82 ) LIMIT 0 , 30
__________________
Не получается воткнуть код на сайт? Могу помочь. ася: 858-368. Рефералам бесплатно |
05.01.2010, 11:32 | #5 | |
Мастер
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 237
|
правильно, надо использовать оператор IN, BETWEEN min AND max (если значения входят в диапазон) или OR (например WHERE `id`= 1 OR `id`=11 OR `id`=77)
(1 AND 11 AND 77) выдает 1, т.к. все значения не 0 или NULL Цитата:
|
|
06.01.2010, 01:52 | #7 |
Магистр
Регистрация: 04.12.2007
Сообщений: 3,680
Вес репутации: 416
|
Все "битвины" и "ины" теоритически жрут нехило мощность сервера.
Поэтому если список айдишников невелик- ну например 10-20 (а по хорошему- неважно сколько, важно оттестить и посмотреть на каких количествах сервер начнет зарывацца) - я бы сделал просто классический запрос на выборку строк по известным айдишникам: SELECT * FROM table WHERE ( (id=1) OR (id=12) OR (id=23) OR ... (id=89) ) Если же массив айдишников здоровенный- сотни или тысячи, то наверное надо мутить чтото другое.. Если надо- можно подумать что именно.. Если есть какието облегчающие условия- например, известно, что все айдишники идут попорядку и неубыват, или какието еще ограничения на ряд - то это можно с успехом использовать при построении запроса.
__________________
|
06.01.2010, 02:03 | #10 |
Особый статус
|
На серче помогли:
WHERE id IN (1,10,100) // аддед ID по идее должны идти по порядку, и их может быть неизвестное множество (от 0 до, скажем, 100-200-500), ибо это комментарии пользователей к статье, посту, картинке, видео... Последний раз редактировалось Ufaweb; 06.01.2010 в 02:08. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите правильно составить заявку в ЯК | doom_seller | Курилка | 9 | 26.10.2009 23:13 |
запрос в mysql | Zergalius | Разработка и сопровождение сайтов | 22 | 14.07.2009 13:27 |
Помогите составить SQL запрос? | Fredy314 | Разработка и сопровождение сайтов | 7 | 02.06.2009 09:19 |
помогите с MySQL | 10012003 | Разработка и сопровождение сайтов | 21 | 19.05.2009 12:22 |
Запрос к MySQL | Ulf | Разработка и сопровождение сайтов | 13 | 12.05.2009 00:26 |
Часовой пояс GMT +3, время: 13:23.