SQL 쿼리를 생성하는 함수를 만들려고합니다. 매개 변수로 주어진 식으로 결과를 필터링합니다 ('WHERE'절로 전달됨). 매개 변수를 생략하면 모든 결과가 반환됩니다.테이블의 모든 레코드를 항상 선택하는 WHERE 절
이 작업을 수행하기 위해 null 매개 변수를 테스트하고 매개 변수가 주어진 경우에만 where 절을 작성할 수 있습니다 (where = (parameter != null) ? "" : "WHERE " + parameter
). 그러나, 나는 항상 모든 결과를 반환하는 기본 설정할 수있는식이 있는지 생각하고있었습니다. 이렇게하면 WHERE
키워드 (where = "WHERE " + parameter
)를 포함할지 여부를 테스트 할 필요가 없습니다.
주입을 피하기 위해 매개 변수를 이스케이프 처리하지 않았다고 일부러 언급하지 않았습니다. 나는 이것을 내 해결책으로 잊지 않을 것이다, 나는 약속한다! :)
어떤 언어를 사용하고 있습니까? 아니면 독점적 인 SQL 언어 (예 : T-SQL)를 사용하여 검색어를 생성합니까? 태그를 추가하십시오 – PinnyM
유사 : http://stackoverflow.com/a/8149183/27535 – gbn
이것은 내가 독점하고있는 독점적 인 SQL 언어입니다. 이것을 할 수있는 방법이 없을 수도 있습니다. 그러나 이것을 시작점으로 삼는 '표준'방법을 찾았을 것입니다. –