java、mysql字符串比较大小
java中有一个变量min="004",一个变量max="017"。我想通过JDBC从数据库中取出字段名为count的大于min且小于max的记录,即count>=min...
java中有一个变量min="004",一个变量max="017"。
我想通过JDBC从数据库中取出字段名为count的大于min且小于max的记录,即
count>=min and count<=max。
字段count为varchar类型。
这样能实现吗?怎么实现?
数据库的sql语句要怎么写?貌似比不了字符串的? 展开
我想通过JDBC从数据库中取出字段名为count的大于min且小于max的记录,即
count>=min and count<=max。
字段count为varchar类型。
这样能实现吗?怎么实现?
数据库的sql语句要怎么写?貌似比不了字符串的? 展开
6个回答
展开全部
可以啊,字符串是可以比较大小的。
不过要注意,你要确保count里面都是数字,可别什么乱七八糟的字符都有啊。
还要保证比较的字符串的长度相同,用lengt(count)=3来限定。如果min和max是变量,那么就拼sql,然后把min.length()给拼接进去。
不过要注意,你要确保count里面都是数字,可别什么乱七八糟的字符都有啊。
还要保证比较的字符串的长度相同,用lengt(count)=3来限定。如果min和max是变量,那么就拼sql,然后把min.length()给拼接进去。
更多追问追答
追问
length(count)=3是什么意思?
具体怎么拼接?
这个不是我懒啊,是我不会用。-_-|||
追答
是限定长度,字符串比较的时候,如果长度不相同,比较大小的结果可能会和你预想的不一样的。
展开全部
解决办法有两个:
将count转化成数值型,然后来比较,如果你的数据库是sql server
select * from table_name where cast(count as int)>=min
2 .将004 017作为字符String sql = "select * from tablename where count>=‘“+min+"’ and count<=‘"+max’“; 注意使用单引号+双引号
更多追问追答
追问
我的数据库是mysql,应该不影响吧?
追答
mysql 用的不是cast函数,有同样功能的函数,去度娘一下,很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你在哪写了?在java代码中写:String sql = "select * from tablename where count>=“+min+" and count<="+max;
更多追问追答
追问
这个原理是count、min、max在数据库里会自动转化为int型比较吗?还是……
追答
你测试不行?你具体的需求是干嘛? count 为varchar类型=号后面加单引号比较就可以。
你用语句自己测试一下,不是很费时间的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
count字段如果都是数字组成的字符串,可以直接比较,count >= 4 and count <=17,注意4和17不需要单引号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个java中倒是可以转换成int来比较,数据库中可使用cast函数转换比较,CAST (<expression> AS <data_ type>[ length ])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询