A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马龙超 中级黑马   /  2012-6-15 17:24  /  2238 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马龙超 于 2012-6-15 17:29 编辑

号码归属地查询中,为了得到输入号码的归属地,需要查询数据库中符合条件的记录,用到了select * from Table where StartNo<=@No and EndNo<=@No
这里的No为文本框中输入的电话号码,StarNo和EndNo分别为某个号码归属地一系列号码的开始号码和结束号码,都为字符串类型。
测试通过,但问题在于,字符串可以用<=和<=等运算符比较大小吗?又是怎么比较的呢?

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

4 个回复

倒序浏览
比较字符串的大小??你指的是比较字符串的长度吧?如果是比较字符串的长度那就没问了,首先获取他的长度值,在进行比较,
2:如果你比较的数值型的字符串,那也可以比较,就是先获取你要比较的数值字符串,在转换为int类型,这样就可以比较了。。。值得注意的是在输入的时候你希望只是纯数字那就得禁用输入法,或者是通过键盘码指定能输入的按键,这样在调试的时候就可以把错误减小到最低。。。


说下禁用输入法在IE下有用在火狐是没用的 这个在网站开发的时候也是要注意的问题

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
如果是 比较 两字符串 等于 或者  不等于, 直接用 =, !=
如果是比较 >=   <=  那么应该调用  string.compare() 方法吧,  你在 vs中 转到定义看一下, 就清楚, 此方法可以 顺序比较字符串的字符ASC2码大小, 返回比较结果。 但是你是写在 sql语句中, 所以我觉得用 比较字符串大小的办法去比较2个号码不是很合适。

我觉得换个思路: 把字符串先 按照  规律分割:(比如哪几位表示省份, 哪几位表示 是 移动还是联通等等)
然后转换为 int型 去比较,, 多比较几次 , 依次得到该号码的信息。


评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
如果字符串全是数字好像sql会自动转换为整形比较

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
如果是英文字符,应该是从左到右按对应位置字符的asc码比较

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马