TypeORM에서 동적 'andWhere' 쿼리 만들기
P粉334721359
2023-08-03 14:25:08
<p>HTML 테이블을 필터링하기 위해 쿼리에 where 절을 동적으로 추가하려고 합니다. 필터링된 키-값 쌍이 포함된 객체를 API로 보냅니다. 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">{위치: '시애틀', 상태: '활성'}</pre>
<p> 검색어에 각 필터를 추가하는 방법은 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">const query = this.tableRepository.createQueryBuilder('myTable')
.where('myTable.id = :id', {table_id})
변수=1
for(myObj에 키를 넣음){
var varname = 'searchVal' + 문자열(ind)
const searchVal = myObj[키]
query.andWhere(`row_value.row_data->> '${key}' ILIKE :${varname}`, {varname: `%{searchVal%`})
}</pre>
<p>계속 나타나는 오류는 다음 오류입니다: ERROR [ExceptionsHandler] 구문 오류가 ":" 또는 그 근처에 있습니다. QueryFailedError: ":" 또는 그 근처에 구문 오류가 있습니다. 마지막에 {varname: '%{searchVal}%'}에 의해 오류가 발생했다고 확신하지만 이를 변경하는 방법을 모르겠습니다. </p>
괜찮아, 알아냈어. 방금 좀 바보같았어.
마지막 {varname: '%{searchVal}%'}을(를) {[varname]: '%{searchVal}%'}로 변경하면 됩니다.