В один запрос получить данные о многих полях...

Гравицапа

elbirret elcno
В один запрос получить данные о многих полях...

Всем привет!
Сорри, за несовсем понятное название топика.
Есть,например, таблица
Код:
user   | param1 |  param2 |  param3 |  param4 |  param5 | 
user1 |     55      |       54     |          1      |          -1   |      44      | 
user2 |     55      |       54     |          1      |          -1   |       -1      | 
user3 |     -1       |       54     |         47     |          -1   |      44      | 
user4 |     55      |       54     |        10      |          -1   |      44      |
у param* есть спец значение = -1
Так вот можно ли (и как )в один запрос получить данные о наличии в талице рядов с param* == -1
то есть в итоге результат должен быть вроде

Код:
user   | param1 |  param2 |  param3 |  param4 |  param5 | 
       -   |        1      |        0      |        0      |           1    |     1         |
?
 

Анатолий

Новичок
Гравицапа
Не мог бы ты уточнить вопрос...
Т.е. нужно получить строки в которых хотя бы в одном поле присутствует -1 или как?
 

bgm

 
Один запрос:
PHP:
SELECT
("-" AS "user"),
(SELECT SUM(param1)*(-1) FROM my_table WHERE param1=-1) AS "param1",
(SELECT SUM(param2)*(-1) FROM my_table WHERE param2=-1) AS "param2",
(SELECT SUM(param3)*(-1) FROM my_table WHERE param3=-1) AS "param3",
(SELECT SUM(param4)*(-1) FROM my_table WHERE param4=-1) AS "param4",
(SELECT SUM(param5)*(-1) FROM my_table WHERE param5=-1) AS "param5"
Разве что такой изврат :)
 

chira

Новичок
Код:
SELECT
MAX(param1=-1)  AS param1
,MAX(param2=-1)  AS param2
,MAX(param3=-1)  AS param3
,MAX(param4=-1)  AS param4
,MAX(param5=-1)  AS param5
FROM mytable
 

Гравицапа

elbirret elcno
Анатолий
Не совсем так, ...надо сделать такой запрос, чтобы можно было однозначно ответить, существует ли пользователь с, например, param1=-1 или нет. Сейчас для каждого параметра выполняется отдельный запрос - мне это не совсем нравится.
chira
Забыл уточнить, что значения param* положительные числа, а "-1" - спец значение.
Таким образом, заменив в вашем запросе MAX -> MIN получим искомое!
Всем большое спасибо!
 
Сверху