Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 10:27   #1
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию MySQL - Объединить запросы

Добрый день, нужно выполнить два запроса "за раз" в MySQL, как это можно сделать? UNION не подходит.
PHP код:
SELECT place_id
FROM place
WHERE title 
"Мая бэй"
    
OR (title "Мая бэй" AND place_id 4)
ORDER BY title ASCplace_id ASC
LIMIT 1

UNION

SELECT place_id
FROM place
WHERE title 
"Мая бэй"
    
OR (title "Мая бэй" AND place_id 4)
ORDER BY title DESCplace_id DESC
LIMIT 1 
Dexes вне форума Ответить с цитированием
Старый 11.12.2012, 11:17   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Dexes, почему не подходит?
Carbon вне форума Ответить с цитированием
Старый 11.12.2012, 13:15   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Извратиться можно, например так (если еще MySQL съест)
Код:
SELECT p.place_id
  FROM place p
  WHERE p.place_id in (SELECT p1.place_id
                         FROM place p1
                         WHERE p1.title > "Мая бэй" OR (p1.title = "Мая бэй" AND p1.place_id > 4)
                         ORDER BY p1.title ASC, p1.place_id ASC
                         LIMIT 1) OR
        p.place_id in (SELECT p2.place_id
                         FROM place p2
                         WHERE p2.title < "Мая бэй" OR (p2.title = "Мая бэй" AND p2.place_id < 4)
                         ORDER BY p2.title DESC, p2.place_id DESC
                         LIMIT 1)
Чисто в учебных целях пойдет, а нет - подозреваю, что запрос будет еще менее эффективный, чем у ТС
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.12.2012, 14:58   #4
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

2 Carbon, не подойдет, потому что MySQL будет ругаться на ORDER BY (пробовал).
2 Аватар, идея класс, но MySQL не схавает LIMIT в подзапросе к сожалению.
Dexes вне форума Ответить с цитированием
Старый 19.08.2014, 16:47   #5
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Балбес, ORDER BY один на оба запроса должен быть!
Повзрослел - поумнел... Немного.
Dexes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические запросы в MySQL kuzjma SQL, базы данных 0 09.12.2011 13:58
Mysql запросы Lerank Помощь студентам 1 22.11.2010 18:00
Объединить запрос к нескольким таблицам в один (php+MySql) Maxx PHP 17 23.08.2010 16:32
MySQL. Многотабличные запросы GenbI4 Помощь студентам 4 12.11.2009 13:00
DeLphi +Mysql запросы ! Flanker13 БД в Delphi 10 06.04.2009 15:30