我有一个表:'Categories'有两个字段:Category_ID和Category。 Category_ID字段中的数据类似于'c1','c2'。如果有10行,那么从c1到c10。当我在此表中插入新记录时,如何设置类似c11或c12的Category_ID?如果没有删除任何记录,则可以根据行数轻松设置。但是用户可以删除记录。我试图从表中检索Category_ID,将其存储在vector中,然后设置一个字符串变量,该变量存储由';'分隔的所有category_ids我想从Category_ID中分离c和相关数字,以便可以使用插入查询中的下一个数字。
Statement st;
ResultSet rsCatID;
String query="";
String querySelect="";//used to get last category_id number,so that next value will be applied in insert query.
Vector vCatID=new Vector();
String strCatID="";
String[] arrCatID;
然后在连接后尝试catch块行
querySelect="select Category_ID from Categories";
rsCatID=st.executeQuery(querySelect);
while(rsCatID.next()){
vCatID.add(rsCatID.getString("Category_ID").toString());
}
for(int i=0;i<vCatID.size();i++){
strCatID+=vCatID.get(i).toString()+";";
}
System.out.println("strcatidcount=="+strCatID);
arrCatID=strCatID.split(";");
for(int i=0;i<arrCatID.length;i++){
System.out.println("arrCatID=="+arrCatID[i]);
}
现在想要从数组中拆分数字并希望插入下一个值并将其附加到字符“c”并插入整个新记录。我该怎么分裂呢?例如。如果category_id是c3,那么3必须存储在另一个数组中,对于新记录4,将插入(c4)。
答案 0 :(得分:3)
SELECT MAX((CAST(REPLACE(Category_ID,'C','') AS INT))) from Categories
可替换地:
SELECT MAX(cint(MID(Category_ID,2))) FROM Categories;
这将带来最高的回归
答案 1 :(得分:1)
这太复杂了!只需使用自动增量字段。为什么类别字段必须以字母c开头呢?为什么它不能只是一个整数?如果需要在应用程序中以“c”开头显示,只要从数据库中读取值,就可以修改它们,但是将它们作为整数保存在数据库中。这将更有效率,让您避免重新发明轮子。