Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erstelle ich eine dynamische SQL-Abfrage zur Laufzeit mit der SQL-Objekt-API von JDBI?

JDBI eignet sich nicht sehr gut zum Erstellen dynamischer Abfragen. Meiner Meinung nach besteht der ganze Sinn dieser Bibliothek darin, Code und SQL-Abfragen so weit wie möglich zu trennen.

Ihr spezieller Fall könnte jedoch mit SQL gelöst werden:

COALESCE(:foo, foo) 

wenn 'foo' der Name der Spalte in der Tabelle ist und :foo zu NULL aufgelöst wird, dann ist mysql SET effektiv

SET foo=foo

dh es wird nichts tun (was in Ihrem Fall das gewünschte Verhalten ist). Wenn :foo nicht null ist, entspricht es

SET foo=:foo