Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL запрос / 5 сообщений из 5, страница 1 из 1
09.09.2013, 21:07:26
    #38391512
world12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
Здравствуйте уважаемые форумчанины. Возник следующий вопрос. Есть таблица table1 У него поля: Id, fio, external_uid. Мне нужно сделать выборку данных по этой таблицы. Если задается external_uid, то производить поиск для конкретного external_uid, в противном случаи показать всю таблицу. Как мне сделать это все одним запросом? Заранее спасибо.
...
Рейтинг: 0 / 0
09.09.2013, 21:47:13
    #38391529
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
world12Если задается external_uid, то производить поиск для конкретного external_uid, в противном случаи показать всю таблицу.
На сервер в любом случае передаётся СТРОКА ЗАПРОСА. Если "задается external_uid", то на этом месте в строке запроса будет вставлена соответствующая подстрока. А что туда будет вставлено "в противном случаE"?
...
Рейтинг: 0 / 0
09.09.2013, 22:30:03
    #38391556
world12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
Akina,

В противном случае, будет ничего. Перед тем как отдать строку я проверяю на ее наличие, если она пустая, я могу передать что угодно
...
Рейтинг: 0 / 0
09.09.2013, 23:05:03
    #38391576
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
world12Akina,

В противном случае, будет ничего. Перед тем как отдать строку я проверяю на ее наличие, если она пустая, я могу передать что угодно

будьте проше: на клиенте продедите простейшую логику:

1. если неичго не передали -- запросить селект *
2. если передали $ззз что-то запустите селецт * фром ...вчере идь $ззз
3. если селект вернул запись -- все ок
4. если запись не найдена -- запустите селект *

Если всеже хотите за один запрос то:

Код: sql
1.
2.
3.
4.
select t1.* 
from tbl t1,
(select t2.id from tabl t2 where t2.id = $zzz ) t3
where t1.id = COALESCE(t3.id,t1.id)



только не спрашивайте " будет ли это работать быстро? " :-)
...
Рейтинг: 0 / 0
10.09.2013, 08:26:45
    #38391680
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
select *
from table
where case when ':external_uid' = '' 
           then 1 
           else ':external_uid' = external_uid 
      end
;
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SQL запрос / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]