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语句要怎么写?貌似比不了字符串的?
展开
 我来答
乌微月2S
2013-12-03 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2903万
展开全部
可以啊,字符串是可以比较大小的。
不过要注意,你要确保count里面都是数字,可别什么乱七八糟的字符都有啊。
还要保证比较的字符串的长度相同,用lengt(count)=3来限定。如果min和max是变量,那么就拼sql,然后把min.length()给拼接进去。
更多追问追答
追问
length(count)=3是什么意思?

具体怎么拼接?
这个不是我懒啊,是我不会用。-_-|||
追答
是限定长度,字符串比较的时候,如果长度不相同,比较大小的结果可能会和你预想的不一样的。
百度网友b0905b3
2013-12-03 · TA获得超过293个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:281万
展开全部

解决办法有两个:

  1. 将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函数,有同样功能的函数,去度娘一下,很多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
x6...z@163.com
2013-12-03 · 超过16用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:43.7万
展开全部
看你在哪写了?在java代码中写:String sql = "select * from tablename where count>=“+min+" and count<="+max;
更多追问追答
追问
这个原理是count、min、max在数据库里会自动转化为int型比较吗?还是……
追答
你测试不行?你具体的需求是干嘛? count 为varchar类型=号后面加单引号比较就可以。
你用语句自己测试一下,不是很费时间的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oliverpp
2013-12-03 · TA获得超过988个赞
知道小有建树答主
回答量:686
采纳率:0%
帮助的人:652万
展开全部
count字段如果都是数字组成的字符串,可以直接比较,count >= 4 and count <=17,注意4和17不需要单引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友51ac7ee
2013-12-03 · 超过15用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:34.4万
展开全部
这个java中倒是可以转换成int来比较,数据库中可使用cast函数转换比较,CAST (<expression> AS <data_ type>[ length ])
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式