汉字模糊查询

脆沙 2011-01-29 10:56:50
各位砖家,新年好

我的语句是

SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%二级库%')

结果郁闷的是,没有数据返回

可当我改为

SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%二级%')

就会有 二级库 的查询结果返回。我真郁闷了。

求原因,求解。

谢谢。
...全文
216 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
华芸智森 2011-02-15
  • 打赏
  • 举报
回复
可能在 二级库 中有不显示的字符.
feilniu 2011-02-11
  • 打赏
  • 举报
回复

SELECT 购买商场, CAST(购买商场 AS varbinary(1000)
FROM ***表 WHERE (购买商场 LIKE '%二级%')

看一下你的“二级库”究竟是什么东东?
yibey 2011-02-11
  • 打赏
  • 举报
回复
我猜测下,会不会在你2级和库之间有个空格什么的
yy1987316 2011-02-11
  • 打赏
  • 举报
回复
现在问题就在这个 库 字上面了

单插个值 N'库' 进去 再用这个记录试
脆沙 2011-02-11
  • 打赏
  • 举报
回复
18楼引用错误

[Quote=引用 16 楼 kuangdp 的回复:]
SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%二级%库%')

这样肯定有结果吧,呵呵 中间有未知字符
[/Quote]

很遗憾的告诉16楼,这样查询没有数据返回,只认'%二%',
'%二级%库%'不认,'%二%库%' 也不认。

呃的神呀。无解中... ...
脆沙 2011-02-11
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 maco_wang 的回复:]
1、手动更新或是脚本根据id更新。
2、如果更新不了,就删除,然后重新插入一条数据。
[/Quote]
很遗憾的告诉16楼,这样查询没有数据返回,只认'%二%',
'%二级%库%'不认,'%二%库%' 也不认。

呃的神呀。无解中... ...
叶子 2011-01-29
  • 打赏
  • 举报
回复
1、手动更新或是脚本根据id更新。
2、如果更新不了,就删除,然后重新插入一条数据。
脆沙 2011-01-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 acherat 的回复:]
引用 10 楼 djlaaa 的回复:
我手动更新了下,还是不行。郁闷了


你把其中一个数据的 二级库 先删除了,然后再打个 二级库 进去,注意全半角,然后查查看。
[/Quote]

我试了下,还是不行。
脆沙 2011-01-29
  • 打赏
  • 举报
回复
12楼,你说的太好了,太太对了,超级正确。太牛了。赞个。
feixianxxx 2011-01-29
  • 打赏
  • 举报
回复
.....
明显你那个二级库 不是你所谓的二级库~
AcHerat 2011-01-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 djlaaa 的回复:]
我手动更新了下,还是不行。郁闷了
[/Quote]

你把其中一个数据的 二级库 先删除了,然后再打个 二级库 进去,注意全半角,然后查查看。
脆沙 2011-01-29
  • 打赏
  • 举报
回复
我手动更新了下,还是不行。郁闷了
叶子 2011-01-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 djlaaa 的回复:]
有含有 库 字的结果,但是该结果不含 二级库

应该改就是 二级库 的 库 字的问题。
[/Quote]
手动更新下这个字
脆沙 2011-01-29
  • 打赏
  • 举报
回复
有含有 库 字的结果,但是该结果不含 二级库

应该改就是 二级库 的 库 字的问题。
AcHerat 2011-01-29
  • 打赏
  • 举报
回复
6#多余了,查的时候按区分全半角试试。
AcHerat 2011-01-29
  • 打赏
  • 举报
回复

SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%库%')
--看有结果没!没有说明这个“库”字有问题!
脆沙 2011-01-29
  • 打赏
  • 举报
回复
我也是在猜测,但是我用查询复制出来的 二级库 再查也是没有结果。

谢谢二楼 ,正如你说的我确实不区分大小写,不区分半全角。

你的例子是英文,我备注里面都是汉字。我想肯定是汉字编码的问题,

需要说明

我模糊查询 库 的时候确实没有 二级库 被查出来。看来 二级库 的 库 确实 不是 库。

我该怎么办。

谢谢
叶子 2011-01-29
  • 打赏
  • 举报
回复

SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%二级库%')

SELECT 备注 FROM ***表 WHERE (购买商场 LIKE '%二级%')

我估计你的二级和库之间有个小空隙。
gw6328 2011-01-29
  • 打赏
  • 举报
回复

-- 不好意思,刚才不贴完
set nocount on
--1--
print '建立初始数据表Customer'
create table Customer(id int,uname varchar(10))
insert into Customer
select 1,'Jim' union all
select 2,'Simith' union all
select 3,'uonun'

select * from Customer

--2--
print '建立初始数据表Info'
create table Info(uname varchar(10),phone varchar(11))
insert into Info
select 'JIM','13800000000' union all
select 'Simith','13911111111' union all
select 'uonun','13812345678'

select * from Info

--3--
print '不区分大小写,不区分全半角'
select c.id,c.uname as 'c.uname',i.uname as 'i.uname',i.phone
from Customer as c inner join Info as i
on c.uname = i.uname

--4--
print '区分大小写,不区分全半角'
select c.id,c.uname as 'c.uname',i.uname as 'i.uname',i.phone
from Customer as c inner join Info as i
on c.uname = i.uname
collate Chinese_PRC_CS_AS

--5--
print '不区分大小写,区分全半角'
select c.id,c.uname as 'c.uname',i.uname as 'i.uname',i.phone
from Customer as c inner join Info as i
on c.uname = i.uname
collate Chinese_PRC_CI_AI_WS

--6--
print '区分大小写,区分全半角'
select c.id,c.uname as 'c.uname',i.uname as 'i.uname',i.phone
from Customer as c inner join Info as i
on c.uname = i.uname
collate Chinese_PRC_CS_AI_WS

DROP TABLE Customer
DROP TABLE Info


/*
建立初始数据表Customer
id uname
----------- ----------
1 Jim
2 Simith
3 uonun

建立初始数据表Info
uname phone
---------- -----------
JIM 13800000000
Simith 13911111111
uonun 13812345678

不区分大小写,不区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
1 Jim JIM 13800000000
2 Simith Simith 13911111111
3 uonun uonun 13812345678

区分大小写,不区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
2 Simith Simith 13911111111
3 uonun uonun 13812345678

不区分大小写,区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
1 Jim JIM 13800000000
3 uonun uonun 13812345678

区分大小写,区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
3 uonun uonun 13812345678
*/
gw6328 2011-01-29
  • 打赏
  • 举报
回复
证明后面一个不是"库"字
或者编吧半角全角


on c.uname = i.uname
collate Chinese_PRC_CI_AI_WS

--6--
print '区分大小写,区分全半角'
select c.id,c.uname as 'c.uname',i.uname as 'i.uname',i.phone
from Customer as c inner join Info as i
on c.uname = i.uname
collate Chinese_PRC_CS_AI_WS

DROP TABLE Customer
DROP TABLE Info


/*
建立初始数据表Customer
id uname
----------- ----------
1 Jim
2 Simith
3 uonun

建立初始数据表Info
uname phone
---------- -----------
JIM 13800000000
Simith 13911111111
uonun 13812345678

不区分大小写,不区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
1 Jim JIM 13800000000
2 Simith Simith 13911111111
3 uonun uonun 13812345678

区分大小写,不区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
2 Simith Simith 13911111111
3 uonun uonun 13812345678

不区分大小写,区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
1 Jim JIM 13800000000
3 uonun uonun 13812345678

区分大小写,区分全半角
id c.uname i.uname phone
----------- ---------- ---------- -----------
3 uonun uonun 13812345678
*/
加载更多回复(3)

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧