Предложение WHERE, которое всегда выбирает все записи в таблице - PullRequest
3 голосов
/ 24 февраля 2012

Я хочу создать функцию, которая генерирует SQL-запрос, фильтруя результаты по выражению, заданному в качестве параметра (который будет передан как предложение WHERE).Если параметр опущен, возвращаются все результаты.

Чтобы сделать это, я могу проверить нулевой параметр и построить предложение where только при заданном параметре (where = (parameter != null) ? "" : "WHERE " + parameter).Тем не менее, я подумал, есть ли выражение, которое я могу использовать по умолчанию, которое всегда будет возвращать все результаты.Таким образом, мне не нужно проверять, нужно ли включать ключевое слово WHERE (where = "WHERE " + parameter).

Я специально не упомянул экранирование параметра, чтобы избежать внедрения.Я не забуду это в своем решении, обещаю!:)

Ответы [ 3 ]

9 голосов
/ 24 февраля 2012

Я обычно использую 1 = 1 для этого.

4 голосов
/ 24 февраля 2012
(where = "WHERE 1 = 1 " + parameter)

В этом случае параметр должен начинаться с токена «И».

1 голос
/ 24 февраля 2012

Вы можете инициализировать параметр как TRUE или 1.

...