Erstellen dynamischer „andWhere'-Abfragen in TypeORM
P粉334721359
2023-08-03 14:25:08
<p>Ich versuche, einer Abfrage dynamisch eine Where-Klausel hinzuzufügen, um eine HTML-Tabelle zu filtern. Ich sende ein Objekt an meine API, das gefilterte Schlüssel-Wert-Paare enthält. Es sieht so aus: </p>
<pre class="brush:php;toolbar:false;">{Standort: 'Seattle', Status: 'Aktiv'}</pre>
<p> So füge ich die einzelnen Filter zur Abfrage hinzu: </p>
<pre class="brush:php;toolbar:false;">const query = this.tableRepository.createQueryBuilder('myTable')
.where('myTable.id = :id', {table_id})
Varind=1
for (myObj eingeben lassen){
var varname = 'searchVal' + String(ind)
const searchVal = myObj[key]
query.andWhere(`row_value.row_data->> '${key}' ILIKE :${varname}`, {varname: `%{searchVal%`})
}</pre>
<p>Die Fehlermeldung, die ich immer wieder erhalte, ist die folgende: ERROR [ExceptionsHandler] Syntaxfehler bei oder in der Nähe von „:“ QueryFailedError: Syntaxfehler bei oder in der Nähe von „:“. Ich bin mir sicher, dass der Fehler durch {varname: '%{searchVal}%'} am Ende ausgelöst wird, aber ich weiß nicht, wie ich ihn ändern kann. </p>
没关系,我弄明白了 - 我刚才有点傻。
我只需要将最后的{varname: '%{searchVal}%'}更改为{[varname]: '%{searchVal}%'}即可。