|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
Добрый день, есть запрос, в нем несколько полей. надо чтобы, если запрос не возвращает ничего - выплолнился другой запрос. Подскажите как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 13:28 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
Думал можно так: Код: sql 1.
Но так не работает: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 13:30 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
Так тоже не работает, если ::record добавить: acidophilusДумал можно так: Код: sql 1.
Но так не работает: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 13:31 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
acidophilus, Смысл возвращаемой ошибки немного другой: подзапрос возвращает несколько записей, о чем честно пишет. Нужно составить запрос, который возвращает не больше одной записи. Быстро и грязно (но неправильно): вписать LIMIT 1 в конце. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 14:00 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
ursido, Ой! Должен возвращать одну колонку. Пробуйте так: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 14:02 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
acidophilusДобрый день, есть запрос, в нем несколько полей. надо чтобы, если запрос не возвращает ничего - выплолнился другой запрос. Подскажите как это сделать? типы возвратов одинаковые ? если нет -- придется привести тип к одному (текст например), и парсить уже клиентом. если да -- то сам запрос как угодно -- через union (надо помыслить, как не делать 2, а не обрезать лимитом), coalesce (rec1,rec2),coalesce (txt1,txt2) ,coalesce (txt1[],txt2[]); [hstore[]|json] или ещё как-то. давайте сначала определимся с типами. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 14:55 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
qwwqacidophilusДобрый день, есть запрос, в нем несколько полей. надо чтобы, если запрос не возвращает ничего - выплолнился другой запрос. Подскажите как это сделать? типы возвратов одинаковые ? если нет -- придется привести тип к одному (текст например), и парсить уже клиентом. если да -- то сам запрос как угодно -- через union (надо помыслить, как не делать 2, а не обрезать лимитом), coalesce (rec1,rec2),coalesce (txt1,txt2) ,coalesce (txt1[],txt2[]); [hstore[]|json] или ещё как-то. давайте сначала определимся с типами. типы одинаковые, но запросы разные, как их объединить - не пойму, коалис ведь в рамках одного запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 15:12 |
|
Как выполнить еще один запрос если первый пустой?
|
|||
---|---|---|---|
#18+
acidophilus типы одинаковые, но запросы разные, как их объединить - не пойму, коалис ведь в рамках одного запроса.а сколько записей вам может вернуть каждый запрос ? если не больше 1-го, это одно, если по несколько -- это другое (обходится возвратом array-ев типов или hstore, например). примерное направление мысли : Код: sql 1. 2.
или даже: Код: sql 1. 2.
это про coalesce. но, думаю, про union проще Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 16:05 |
|
|
start [/forum/topic.php?fid=53&msg=39461644&tid=1996472]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 116ms |
0 / 0 |