我得到了这样一个数据:
{ "key1" : [ "value1", "value2" ],
"key2" : [ "value3", "value4" ],
"key3" : [ "value5", "value6" ] }
我想从它们创建sql查询WHERE
子句,如下所示:
WHERE
column1 in (value1, value2)
OR
column2 in (value3, value4)
OR
column3 in (value5, value6)
我试着给<#assign column1 = <#if key1??> ${key1?join(", ")} </#if> >
赋值,但似乎不可能
问题是:如何在子句之间设置OR
分隔符?如何应用join from join?也许还有其他不使用assign的解决方案?
2条答案
按热度按时间mdfafbf11#
Use可以使用
#list
和#sep
。类似这样:另外,你可能想在更简单的情况下使用
?join
,就像我上面对嵌套清单所做的那样。b1payxdu2#
您不应该从数据中获取值并将它们直接放入sql中,因为这会使您的应用程序容易受到sql injection attacks的影响
请参见https://xkcd.com/327/
相反,您应该像这样创建sql
然后做一些像