Java 列出包含BETHEN和like语句的注册表时遇到问题
我有一个数据库搜索应用程序,它可以实际查找两个值之间的注册表,过滤器与本例中的过滤器类似:Java 列出包含BETHEN和like语句的注册表时遇到问题,java,mysql,swing,netbeans,between,Java,Mysql,Swing,Netbeans,Between,我有一个数据库搜索应用程序,它可以实际查找两个值之间的注册表,过滤器与本例中的过滤器类似: String sql ="SELECT * FROM Registries\n"+ "AND Registries.Registry\n"+ "BETWEEN '"+concatCode1+"'\n"+ "AND '"+concatCode2+"'"; 其中concatCode1是例如:15C9999 其中15是年份,C是注册表
String sql ="SELECT * FROM Registries\n"+
"AND Registries.Registry\n"+
"BETWEEN '"+concatCode1+"'\n"+
"AND '"+concatCode2+"'";
其中concatCode1是例如:15C9999
其中15是年份,C是注册表类型,9999是该注册表的编号
所以它工作得很好,除非concatCode1和concatCode2短一些,比如15C100和15C250。该程序将从以下列表中列出:
15C10000代替15C00100,15C25000代替15C00250
此外,还有另一个参数,用于区分年份和数字之间是否有字母(可以是->C、B、M、D、a),或在MySQL中用于包含所有字符的“\”(不带引号),例如,具有以下值:
String sql ="SELECT * FROM Registries\n"+
"AND Registries.Registry\n"+
"LIKE 15_9999";
应该是清单15A9999、15B9999、15C9999、15D9999、15M9999
因此,我需要的是能够使用Between语句列出每种注册表,并模拟statemen的功能,例如,因为我不能在查询中使用Between
编辑:
我试着这样做:
"BETWEEN '"+codeYear1+codeTestType+"LPAD('"+code1+"' ,5 ,'0')'\n"+
"AND '"+codeYear2+codeTestType+"LPAD('"+code2+"' ,5 ,'0')'";
在“+code2+”,5,'0')上抛出MysqlError您可以用反斜杠“\\”来摆脱下划线小丑:要解决这个问题,您需要分解代码的不同部分。有时,您试图像处理数字数据一样处理字符数据,有时则像处理其他字符数据一样处理字符数据。因此,取左边的3个字符,然后取剩余的0个字符。对于哪5个位置?我正在这样尝试:在“+codeYear1+codeTestType+”LPAD(“+code1+”,5,'0')”和“+codeYear2+codeTestType+”LPAD(“+code2+”,5,'0')”之间;在“+code2+”上抛出MysqlError,5,'0')