sql 条件查询面积
答案:1 悬赏:0 手机版
解决时间 2021-02-09 02:08
- 提问者网友:骨子里的高雅
- 2021-02-08 07:32
sql 条件查询面积
最佳答案
- 五星知识达人网友:洒脱疯子
- 2021-02-08 08:44
Java示例:
public static void main(String args[]) {
String rawSql = "“林地” or “面积”>100 or “面积”>90";
rawSql = rawSql.toLowerCase();
Vector conList = new Vector();
String[] split0 = rawSql.split("or");
String where = "";
int i = 0;
for (String s0 : split0) {
++i;
s0 = s0.trim();
if (s0.equals("")) {
continue;
}
String[] split1 = s0.split("and");
int j = 0;
for (String s1 : split1) {
++j;
s1 = s1.trim();
if (s1.equals("")) {
continue;
}
if (s1.indexOf("面积") < 0) {
s1 = "名称 LIKE '%" + s1.trim() + "%'";
s1 = s1.replace("“", "").replace("”", "");
}
where += s1 + " ";
if (j > 0 && j < split1.length) {
where += " and ";
}
}
if (i > 0 && i < split0.length) {
where += " or ";
}
}
String sql = "SELECT * FROM your_table ";
if (where.length() > 0) {
sql += "WHERe " + where;
}
System.out.println(sql);
}
输出结果:
SELECt * FROM your_table WHERe 名称 LIKE '%林地%' or “面积”>100 or “面积”>90
基本思路就在那里,参考一下吧。追问大哥,谢谢你啊,我是学Flash的,使用flex。可以讲解一下么,谢谢追答...字数限制,所以省略...
//通过"or"进行分词,比如A or B就分成了A和B两个字符串。
String[] split0 = rawSql.split("or");
...
//对于通过“or”进行分词的每个字符串,这里分后的词是:
//“林地” and “面积”>100 和 “面积”>90
for (String s0 : split0) {
++i;
//去掉前后空格
s0 = s0.trim();
...
//对每个分词s0再通过and进行分词
String[] split1 = s0.split("and");
int j = 0;
for (String s1 : split1) {
++j;
//去掉字符串前后空格
s1 = s1.trim();
...
//如果分后的词不含有“面积”这个字符串,那么只有名称了,这时sql语句和名称有关
if (s1.indexOf("面积") < 0) {
...
}
...
//将通过“and”进行的分词再组合在一起
if (j > 0 && j < split1.length) {
where += " and ";
}
}
//将通过“or”进行的分词再组合在一起
if (i > 0 && i < split0.length) {
where += " or ";
}
}
//sql语句的select
String sql = "SELECT * FROM your_table ";
//如果有where语句,则加上where语句
...
public static void main(String args[]) {
String rawSql = "“林地” or “面积”>100 or “面积”>90";
rawSql = rawSql.toLowerCase();
Vector
String[] split0 = rawSql.split("or");
String where = "";
int i = 0;
for (String s0 : split0) {
++i;
s0 = s0.trim();
if (s0.equals("")) {
continue;
}
String[] split1 = s0.split("and");
int j = 0;
for (String s1 : split1) {
++j;
s1 = s1.trim();
if (s1.equals("")) {
continue;
}
if (s1.indexOf("面积") < 0) {
s1 = "名称 LIKE '%" + s1.trim() + "%'";
s1 = s1.replace("“", "").replace("”", "");
}
where += s1 + " ";
if (j > 0 && j < split1.length) {
where += " and ";
}
}
if (i > 0 && i < split0.length) {
where += " or ";
}
}
String sql = "SELECT * FROM your_table ";
if (where.length() > 0) {
sql += "WHERe " + where;
}
System.out.println(sql);
}
输出结果:
SELECt * FROM your_table WHERe 名称 LIKE '%林地%' or “面积”>100 or “面积”>90
基本思路就在那里,参考一下吧。追问大哥,谢谢你啊,我是学Flash的,使用flex。可以讲解一下么,谢谢追答...字数限制,所以省略...
//通过"or"进行分词,比如A or B就分成了A和B两个字符串。
String[] split0 = rawSql.split("or");
...
//对于通过“or”进行分词的每个字符串,这里分后的词是:
//“林地” and “面积”>100 和 “面积”>90
for (String s0 : split0) {
++i;
//去掉前后空格
s0 = s0.trim();
...
//对每个分词s0再通过and进行分词
String[] split1 = s0.split("and");
int j = 0;
for (String s1 : split1) {
++j;
//去掉字符串前后空格
s1 = s1.trim();
...
//如果分后的词不含有“面积”这个字符串,那么只有名称了,这时sql语句和名称有关
if (s1.indexOf("面积") < 0) {
...
}
...
//将通过“and”进行的分词再组合在一起
if (j > 0 && j < split1.length) {
where += " and ";
}
}
//将通过“or”进行的分词再组合在一起
if (i > 0 && i < split0.length) {
where += " or ";
}
}
//sql语句的select
String sql = "SELECT * FROM your_table ";
//如果有where语句,则加上where语句
...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯