Выберите столбцы, где предложение или если нет условий, то выберите все столбцы
У меня есть table
в MySQL следующим образом:
Я пытался следующие запросы:
select * from test.score_card where playerId in(2,3);
select * from test.score_card where playerId not in(0);
Мне нужен однострочный запрос, чтобы он отображал вывод, как если бы я прошел
playerId
в предложении WHERE IN он должен показывать выбранные строки ИЛИ, если я
не передавайте никакое значение, тогда он должен выбрать все строки.
1 ответ
ТАК или ЗАЯВЛЕНИЕ?
select * from test.score_card
where (playerId in(2,3)) or (playerId not in(0));
Или более сложный, который будет возвращать второй набор, только если счет равен 0 в первом наборе:
SELECT * FROM test.score_card
WHERE playerId in (2,3)
UNION
SELECT * FROM test.score_card
WHERE (
SELECT count(*) FROM test.score_card
WHERE playerId in (2,3))=0 AND playerId not in (0);
(Не проверено, может быть опечатка)