У меня есть SQL-запрос, который параметризуется очень ограниченной внутренней структурой. Запрос выглядит так:SQL-запрос с нулевым параметром
Select * from somewhere
where name IN (:parameter);
Код вводит ноль ко многим строкам в местоположение, указанное параметром:. Флаг «: параметр» может использоваться только в предложении «IN» (поэтому он не может быть перемещен после предложения where, чтобы условно вставить раздел «имя IN»).
Иногда пользователь установит параметр:
«собака», «кошка»
Другие времена, пользователь не будет ставить какие-либо значения в переменной: параметр. Это вызывает проблемы, так как в результате запроса SQL будет:
Select * from somewhere
where name IN();
Мой код может поймать тот случай, когда параметр пуст, но мне нужно что-то, что я могу привнести в заявление, в котором гарантировано НИКОГДА не соответствуют фактическим строка.
Есть ли какое-либо регулярное выражение SQL, которое я мог бы вставить, которое НИКОГДА не соответствовало бы какой-либо строке? Что-то вроде%.% Или что-то еще ....
Спасибо!
Возможно, это потребует дальнейшей мысли. Предполагая, что запрос является вашим фактическим запросом, вы в основном выбираете каждую запись и каждый столбец в таблице (предположительно большой, если требуется таблица предложений IN), что может оказаться не лучшей стратегией. –
глядя на него с другого направления, почему бы не запретить пользователю отправлять страницу, если это поле пуст? –
@Robert - на самом деле есть другие части запроса; Я упростил его для целей stackoverflow; однако другие части не устраняют проблему с параметром имени – David