Informix查询的一个非常奇怪的问题
表prpdkind有一字段:
kindcname varchar(40,0)
执行如下查询:
select * from prpdkind where kindcname matches '*盗*'
竟然会查询到这个记录:
riskcode DAA
kindcode A
kindcname 车辆损失险
kindename
ratetypeflag 01
calculateflag Y11Y000
maxfloatrate 1.00000
maxdiscountrate 2.00000
newkindcode A
validstatus 1
flag D
难道,字符串“车辆损失险” matches '*盗*' ?!
问题点数:20、回复次数:11Top
1 楼vincentmax(天地任逍遥)回复于 2006-05-25 14:35:09 得分 0
估计是字符集的问题。输入到数据库后盗字和星号拼成了其他字符。
或者是记录中含有半个汉字,然后和其他字符一起变成了“盗”字吧Top
2 楼cloudflashes(浮云)回复于 2006-05-29 15:32:25 得分 0
看一下你的字段中是否前后有不可见字符Top
3 楼myshao(寂寞如海)回复于 2006-05-31 00:46:43 得分 0
先update你这条记录的kindcname为"车辆损失险",再查试试Top
4 楼vincentmax(天地任逍遥)回复于 2006-06-14 11:35:48 得分 0
问题解决了没?Top
5 楼foxyz(如风)回复于 2006-06-19 15:36:34 得分 0
靠,搞了3年的保险公司车险综合系统,4gl写了这么多年,离开2年,竟然保险公司还在用informix阿?!!!估计仍然用netterm的!怎么样?有没有感觉中型机都不够用阿?!
你用like先试试,或者用matches '%盗*'
Top
6 楼wenlq(when)回复于 2006-07-19 08:43:37 得分 0
> cat a
车辆损失险
盗
> hd a
0000 b3 b5 c1 be cb f0 ca a7 cf d5 0a b5 c1 0a ..............
车的后半字节b5+辆的前半字节c1 组合 起来刚好是 b5c1 盗字Top
7 楼greenwillow280()回复于 2006-07-29 01:24:05 得分 0
用%号试试啊Top
8 楼Dabaobiao(勇气)回复于 2006-08-15 10:51:44 得分 0
wenlq(when)回答得相当有水平,佩服佩服Top
9 楼wlk(温水)回复于 2006-08-22 10:03:01 得分 0
用like '%盗%'Top
10 楼bacchus99()回复于 2006-10-25 15:04:22 得分 0
应该对kindcname进行编码啊,在此表中存储编码信息就不会出现此问题了,不知道如果要对此表出统计报表该怎么办,效率很低的啊Top
11 楼asa80(shan)回复于 2006-12-08 09:09:37 得分 0
用like '%盗%'Top




