我有两个值 $shrtIPv6 = "2001:100:e20::1";
$pieces = explode(":", $shrtIPv6);
foreach($pieces as $piece)
{
$zerosuff = str_pad($piece, 4, '0', STR_PAD_LEFT);
$array1[] .= $zerosuff;
}
if(count($pieces)<8){
$myarray = array("0000","0000","0000","0000","0000","0000","0000");
$last = array_slice($array1, -1);
$array1 = array_slice($array1,0,-1);
$both = array_replace($myarray,$array1);
$fin = array_merge($both,$last);
echo implode(":",$fin);
}
和picId
,我想更新表A.但首先,我必须检查它们是否为空,即tubId
。我使用两次更新语句。我想知道是否只能使用一次更新语句来完成此任务。
""
非常感谢!
答案 0 :(得分:0)
亲爱的Jon Snow试图像这样使用in
:
String update = "update A set columnName=someValue where id in (" + tubId +","+picId+")";
答案 1 :(得分:0)
在这里你可以使用另一个变量并给它提供条件。
String picId="";
String tubId="1";
String sample="";
if(!(picID.equals("")))
{
sample=picId;
}
else if(!(tubId.equals("")))
{
sample=tubId;
}
String update = "update A set columnName=someValue where id=" + sample;
this.executeUpdate(update, new Object[]{});
答案 2 :(得分:0)
我希望您知道在SQL查询中使用串联的方法是SQL注入的方法。
但是关于你的问题,你可以在WH条款中使用IN条件。只需准备数据:
List<String> listId = new ArrayList<>();
if (!"".equals(picId)) {
listId.add(picId);
}
if(!"".equals(tubId)) {
listId.add(tubId);
}
String ids = listId.stream().map(_s -> String.format("'%s'", _s)).collect(Collectors.joining(",", "(", ")"));
String update = "update A set columnName=someValue where id IN " + ids;
this.executeUpdate(update, new Object[]{});