MySQL возвращает все данные из условий - PullRequest
0 голосов
/ 29 апреля 2019

Как я могу вернуть все данные, если набор данных подобен этому?

id    |     status    |     timestamp
1     |       1       |    2019-04-29
2     |       1       |    2019-04-28
3     |       2       |    2019-04-05
4     |       3       |    2019-04-04

Я хотел бы получить все записи из набора данных с помощью запроса, подобного следующему:

WHERE status = 1 AND timestamp = '2019-04-29'
WHERE status = 2 AND timestamp = '2019-04-05'
WHERE status = 3 AND timestamp = '2019-04-04'

данные, которые он должен вернуть, должны быть

id    |     status    |     timestamp
1     |       1       |    2019-04-29
3     |       2       |    2019-04-05
4     |       3       |    2019-04-04

Ответы [ 2 ]

4 голосов
/ 29 апреля 2019

Вы можете использовать or, но я думаю, что кортежи делают это проще:

WHERE (status, timestamp) in ( (1, '2019-04-29'), (2, '2019-04-05'), (3, '2019-04-04'))
0 голосов
/ 29 апреля 2019

Вот альтернатива с простыми AND и OR и соответствующими скобками:

WHERE (status = 1 AND timestamp = DATE '2019-04-29')
   OR (status = 2 AND timestamp = DATE '2019-04-05')
   OR (status = 3 AND timestamp = DATE '2019-04-04')

Но я тоже предпочитаю кортежи, как показано Гордоном: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...