PHP/MySQL로 개발 된 문제점 관리 시스템에서 작업하고 있습니다. 사용자가 검색 매개 변수를 언급하고이 매개 변수에 따라 시스템이 결과 집합을 반환하는 검색 기능이 필요합니다.함수 인수를 사용하여 동적으로 쿼리 생성
이 문제를 해결하려면 함수를 작성하려고하는데 모든 사용자 선택 매개 변수가 인수로 전달됩니다. 인수를 기반으로 동적으로 쿼리를 생성합니다. 때로는 (사용자가 선택한 것을 기준으로) 이러한 인수 중 하나 이상이 null 일 수 있습니다.
샘플 쿼리 :
나는 또한 인수가 OR 연산 또는 쿼리에서 AND 연산 할 수있는 경우를 처리 할 필요가
select * from tickets inner join ticket_assigned_to on tickets.id=ticket_assigned_to.ticket_id where tickets.project_id= in ('') and tickets.status in ('') and ticket_assigned_to.user_id in ('') and tickets.reporter_user_id='' and tickets.operator_user_id in ('') and tickets.due_date between '' and '' and tickets.ts_created between '' and '';
. 예를 들어
: 나는 또한 또한 프로젝트의 다른 장소에서 같은 기능을 사용할 계획입니다
select * from tickets inner join ticket_assigned_to on tickets.id=ticket_assigned_to.ticket_id where tickets.project_id= in ('') and tickets.status in ('') or tickets.due_date = '' or tickets.ts_created between '' and '';
. 사용자의 모든 티켓 또는 지정된 날짜 사이에 생성 된 모든 티켓을 표시하는 것처럼 ...
이 상황을 어떻게 처리합니까?
이 모든 기능 또는 수많은 기능을 처리하는 단일 기능을 사용해야합니까? 여기에 안내가 필요합니다.
를 내가 검색 기능을 제거하더라도를 그림에서, 나는 여전히 질문에 대한 해답을 가질 필요가있다 ....... 1. 나에게 할당 된 모든 이슈를 보여주고 status = 'open'또는 2. 내가 주어진 프로젝트의 모든 이슈 ast 달은 나에게 할당되고, 열린다. .. 등등. 그래서 나는 이것들을 위해 아직도 기능을 가질 필요가있다. – Varun
Sphinx는 인덱스 된 컬럼에 대한 기준을 지정할 수 있기 때문에 MySQL을 통해 전체 텍스트 검색을 할 수 있습니다. MySQL은 여기에 적합합니다. 대부분의 티켓 시스템은 RDBMS를 사용합니다. trac는 sqlite를 사용합니다. –