|
|
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Всем привет! То ли я, то ли mysql не можем разрулить вдоде бы простую ситуацию: Есть таблица: Города |Номера ------ |------ Москва|1 Питер |2 Киев |3 Минск |8 Бостон |6 Требуется: выбрать города, номера которых например соответствуют 1,8,6 (т.е. Москва, Минск, Бостон). Казалось бы вроде все просто, и хочеться использовать такой запрос: SELECT города FROM таблица WHERE номера='1' AND номера='8' AND номера='6'; Но mysql не реагирует на это !? - он говорит, что такого мол нет и хоть ты тресни! Он может выбрать только при одном условии: например WHERE номера='1' и ВСЕ!!! ПОДСКАЖИТЕ, КАК ВЫЙТИ ИЗ ЭТОЙ СИТУАЦИИ ? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 17:53 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Конечно в базе нет городов с номером 1 И 8 И 6... Зато есть города с номером 1 ИЛИ 8 ИЛИ 6 ,) Тяжёлый день вышел?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 18:18 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
ну, как может быть сразу у одного города id равен 1,8 и 6? он может быть либо 1, либо 8, либо 6 ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 18:19 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
SELECT города FROM таблица WHERE номера='1' or номера='8' or номера='6'; выберет три записи)) ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 18:20 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Хммм... Ok, но ведь можно же выбрать список городов используя например BETWEEN ? Например если сделать так: SELECT города FROM таблица WHERE номера BETWEEN 5 AND 10; РЕЗУЛЬТАТ-> Минск, Бостон. И почему бы не сделать тогда: WHERE города=6 AND города=8 для получения Минска и Бостона ? Кроме того можно сделать и так: WHERE номера!==1 AND номера!==2 AND номера!==2; Результат - тот же. По моему это позорная недоработка разработчиков MySQL'я, а ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 19:21 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
потому что Between выбирает (min < = expr AND expr < = max), а не =. Что касается позорной недоработки - вспомните, плиз, булеву алгебру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 19:46 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Фуууу... Кто то мне говорил, что у меня проблемы с логикой, кто то даже предлагал мне вспомнить булеву алгебру! Но так ни кто и не ответил мне - как выбрать города с определенными номерами. Может быть все таки найдется крууутой специалист который поможет мне разобраться в моей сложившейся ситуации ? Заранее спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 20:41 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
[quot Lelikk]ну, как может быть сразу у одного города id равен 1,8 и 6? он может быть либо 1, либо 8, либо 6 ________________________________________________________ Я не ничего не говорил про уникальность записей, при отношении "многое ко многим" в MySQL используются промежуточные таблицы, и поэтому у городов могут быть разные номера, например: Города|Номера --------------- Москва|1 Москва|8 Питер |2 Москва|6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2004, 21:04 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Внимательно читай первые три ответа и будет тебе счастие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 08:31 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
select город form таблица where номер in ('1','8','6') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 10:08 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
я повеселился, читая этот топик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 19:40 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Да, действительно смешно... Хотя честно говоря когда у меня только комп появился (году в 94-м где-то), я был таким же лохом и наталкивался на такую же "проблему":-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 12:18 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
BiZoneХммм... Ok, но ведь можно же выбрать список городов используя например BETWEEN ? Например если сделать так: SELECT города FROM таблица WHERE номера BETWEEN 5 AND 10; РЕЗУЛЬТАТ-> Минск, Бостон. И почему бы не сделать тогда: WHERE города=6 AND города=8 для получения Минска и Бостона ? Кроме того можно сделать и так: WHERE номера!==1 AND номера!==2 AND номера!==2; Результат - тот же. По моему это позорная недоработка разработчиков MySQL'я, а ? Кстати есть мнение что эта недоработка имеет место быть и в других СУБД... Сейчас протестировал PostgreSQL - таже фигня.;-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 18:23 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
LaVei, это НЕ недоработка!!! Это логика! И попробуй мыслить логически, не позорь мужской род:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 21:47 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
Вы все только смеетесь, а помочь никто так и не помог ;( Мне вот тоже интересно, какой запрос сделать, чтобы получить города И с id=1 , И с id=6, И с id=8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 15:17 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
tajВы все только смеетесь, а помочь никто так и не помог ;( Мне вот тоже интересно, какой запрос сделать, чтобы получить города И с id=1 , И с id=6, И с id=8. ВОТ: LelikkSELECT города FROM таблица WHERE номера=1 or номера=8 or номера=6; выберет три записи)). Используй иструкцию ИЛИ и жизнь покажется раем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 15:51 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
RFT, так если я напишу ИЛИ, он мне и выдаст ИЛИ то ИЛИ другое! А мне надо И то И другое! Мне кажется, здесь может помочь только временная таблица-справочник... :( К примеру, Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 16:37 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
%лять, ну как же тебе объяснить-то!!! В записи типа Город|ID поле ID может быть ТОЛЬКО одного значения: или 1, или 6, или 139 нафик! В нем НЕ может быть одновременно и 1 и 6 и 139. При выборе Select будет проверять: - при условии И: он ищет те записи, где одновременно ID равен И 1 И 6 И 139 - при условии ИЛИ: ище те записи, в которых ID может встретиться ИЛИ 1 ИЛИ 6 ИЛИ может быть даже 139. Доступно? Или в школу на повторное обучение пойдешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 16:55 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
гм... ну а как же мне тогда... вот мне нужно скажем 6, ты пишешь - RFT- при условии ИЛИ: ище те записи, в которых ID может встретиться ИЛИ 1 ИЛИ 6 ИЛИ может быть даже 139. а вдруг он мне вернет где 1 или даже 139, а мне ведь нужно где 6? -- Wo siang nide fanvan li ty le tang!(кит.:Я плюнул вам в рис, теперь вы умрёте!) подпись сперта у перца с другого форума, но все равно красиво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 17:04 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
1,6 и 139 - это для примера цифры. Ты можешь перечислить их любое кол-во. Если тебе нужно ТОЛЬКО 6, то так и поставь: ...where id=6. Если тебе нужны те записи, в которых ID может быть не только 6, а что-нибудь еще, то пиши: where id=<что-то> or id=<что-то еще> or id=<что-то еще третье> or id=<что-то еще четвертое> or id=<что-то еще сколько-угодное> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 17:08 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
tajгм... ну а как же мне тогда... вот мне нужно скажем 6, ты пишешь - RFT- при условии ИЛИ: ище те записи, в которых ID может встретиться ИЛИ 1 ИЛИ 6 ИЛИ может быть даже 139. а вдруг он мне вернет где 1 или даже 139, а мне ведь нужно где 6? Интересно, зачем так долго спорить? Не проще ли проверить? SELECT возвращает ВСЕ записи, отвечающие условию. А условие такое: нужны записи, которые имеют Id=1 или Id=2 или Id=10. Это же не значит, что как только будет найдена любая запись, отвечающая условию, то поиск прекратится. Даже если записей с Id=1 несколько, то будут выбраны все эти записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 17:15 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
А чем вам не нравится решение со временной таблицей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 17:17 |
|
||
|
ВЛИП !
|
|||
|---|---|---|---|
|
#18+
tajА чем вам не нравится решение со временной таблицей? Народ, по-моему вы просто ошиблись форумом, вам надо в 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32802580&tid=1854138]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 288ms |
| total: | 578ms |

| 0 / 0 |
