如何在 java-Mysql select 查询中使用带参数的正则表达式?
How do i use regexp with parameters on java-Mysql select query?
我想select通过多个参数从数据库中记录记录
我尝试将列与 concat 组合并使用正则表达式
我可以 运行 此代码,但我想使用实际参数而不是 'NAME' 和 '1100'
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP 'NAME|1100' " ;
`
我试过这种方法,但没有用
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP '"+id+"' | '"+name+"' " ; `
将最后一行更改为
+ "REGEXP '"+id+"|"+name+"' " ;
'
语法错误。
避免对准备好的语句使用参数串联。更喜欢通过问号使用占位符,并通过 preparedStatement.setString()
进行替换,尤其是针对注入
....
PreparedStatement stmt = null;
try {
String sorgu =
"Select per.* from per_kimlik_bilgileri per where concat(pkb_tc_no, '/' , pkb_ad
,'/' , pkb_soyad , '/' , pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'
, pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) REGEXP ?|? " ;
PreparedStatement preparedStatement = conn.prepareStatement(sorgu);
preparedStatement.setString(1, name);
preparedStatement.setString(2, val);
ResultSet rs = preparedStatement.executeQuery();
......
我想select通过多个参数从数据库中记录记录
我尝试将列与 concat 组合并使用正则表达式
我可以 运行 此代码,但我想使用实际参数而不是 'NAME' 和 '1100'
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP 'NAME|1100' " ;
`
我试过这种方法,但没有用
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP '"+id+"' | '"+name+"' " ; `
将最后一行更改为
+ "REGEXP '"+id+"|"+name+"' " ;
'
语法错误。
避免对准备好的语句使用参数串联。更喜欢通过问号使用占位符,并通过 preparedStatement.setString()
进行替换,尤其是针对注入
....
PreparedStatement stmt = null;
try {
String sorgu =
"Select per.* from per_kimlik_bilgileri per where concat(pkb_tc_no, '/' , pkb_ad
,'/' , pkb_soyad , '/' , pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'
, pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) REGEXP ?|? " ;
PreparedStatement preparedStatement = conn.prepareStatement(sorgu);
preparedStatement.setString(1, name);
preparedStatement.setString(2, val);
ResultSet rs = preparedStatement.executeQuery();
......