У меня есть такой простой запрос, который возвращает не целое число с нулевым целым для данного id:
SELECT field1 FROM table WHERE id = 123 LIMIT 1;
Дело в том, что идентификатор не найден, набор результатов пуст. Мне нужен запрос, чтобы всегда возвращать значение, даже если результата нет.
У меня есть эта работа, но мне она не нравится, потому что она работает в 2 раза в том же подзапросе:
SELECT IF(EXISTS(SELECT 1 FROM table WHERE id = 123) = 1, (SELECT field1 FROM table WHERE id = 123 LIMIT 1), 0);
Он возвращает любое поле1, если строка существует, иначе 0. Любой способ улучшить это?
Спасибо!
Редактировать следующие комментарии и ответы: да, это должно быть в одном запросе, и я не могу использовать трюк count, потому что мне нужно вернуть только 1 значение (FYI Я запускаю запрос с помощью метода Java/ Spring SimpleJdbcTemplate.queryForLong()).