Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换java准备的mysql查询语句中的字符串?_Java_Mysql_Prepared Statement_Replaceall - Fatal编程技术网

替换java准备的mysql查询语句中的字符串?

替换java准备的mysql查询语句中的字符串?,java,mysql,prepared-statement,replaceall,Java,Mysql,Prepared Statement,Replaceall,在java代码中,我希望使用SELECT语句从表中检索ID。为此,我使用prepareStatement java功能 PreparedStatement pst = con.prepareStatement(sql); pst.setString(1, entry1); pst.setString(2, entry2); pst.setString(3, entry3); ResultSet rs = pst.executeQuery(); entry1、entry2和entry3是变量。

在java代码中,我希望使用SELECT语句从表中检索ID。为此,我使用prepareStatement java功能

PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, entry1);
pst.setString(2, entry2);
pst.setString(3, entry3);
ResultSet rs = pst.executeQuery();
entry1、entry2和entry3是变量。 但是,其中一些变量可以是“null”。因此,我的sql语句变成:

从一些表格中选择ID,其中col1=“val1”和col2=“val2”以及col3=null

此查询将失败,因此我必须将查询更改为:

从col1=“val1”和col2=“val2”以及col3为空的某些表中选择ID

我该怎么做? 这是一个小示例,我有很多表和列,它们有时可能有空值。因此,替换查询的这一部分是我能看到的最简单的选择。 这是可以做到的,还是我需要先检查所有变量。 非常感谢


Linda

字符串串联和三值条件运算符

String sql=“选择ID”+
“从某张桌子”+
其中col1“+(entry1!=null?”=?:“为null”)+
和col2“+(entry2!=null?”=?:“为null”)+
和col3“+(entry3!=null?”=?“:“为null”);
try(PreparedStatement pst=con.preparest陈述(sql)){
int paramIdx=0;
if(entry1!=null)
pst.setString(++paramIdx,entry1);
if(entry2!=null)
pst.setString(++paramIdx,entry2);
if(entry3!=null)
pst.setString(++paramIdx,entry3);
try(ResultSet rs=pst.executeQuery()){
...
}
}

您也可以尝试使用
空值安全相等(不同于)
运算符

从col1所在的某个表中选择ID?那可乐呢?和col3?;
SELECT ID FROM some_table WHERE col1 <=> ? AND col2 <=> ? AND col3 <=> ?;