Выберите столбцы, где предложение или если нет условий, то выберите все столбцы

У меня есть table в MySQL следующим образом:

Я пытался следующие запросы:

select * from test.score_card where playerId in(2,3);

select * from test.score_card where playerId not in(0);

Таблица: Score_card

Мне нужен однострочный запрос, чтобы он отображал вывод, как если бы я прошел

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);

(Не проверено, может быть опечатка)

Другие вопросы по тегам