正做站内搜索,在search.aspx页面接收从首页传来的值key,对名称列进行模糊查询.请各位帮忙解决下,都折腾了两小时了! 问题一:
求各位帮写一模糊查询语句,谢谢! 两个表Table_chanpin,Table_chanpin2.
字段都一样,
ID int型;
名称 nvarchar(50)
产品简介 nvarchar(max)
图片名称 nvarchar(50)
上传时间 datetime
photoinfo nvarchar(max)
下面是我写的语句,查询的不准确.而且似乎没有删除重复行啊.
string sqlstr = "select distinct a.名称,b.名称,a.ID,b.ID,a.上传时间,b.上传时间,a.photoinfo,b.photoinfo from Table_chanpin a, Table_chanpin2 b where a.名称 like '%" + key + "%' or b.名称 like '%" + key + "%'";
问题二:
我用下面这个查询语句的时候,报错了,提示:"无法解决 UNION 操作中 "Chinese_PRC_CI_AS" 和 "SQL_Latin1_General_CP1_CI_AS" 之间的排序规则冲突。"
我的数据库用的都是Chinese_PRC_CI_AS规则,没用到另外一种啊,怎么会冲突呢?请教! string sqlstr = "select * from Table_chanpin union select * from Table_chanpin2 where 名称 like '%" + key + "%'";
求各位帮写一模糊查询语句,谢谢! 两个表Table_chanpin,Table_chanpin2.
字段都一样,
ID int型;
名称 nvarchar(50)
产品简介 nvarchar(max)
图片名称 nvarchar(50)
上传时间 datetime
photoinfo nvarchar(max)
下面是我写的语句,查询的不准确.而且似乎没有删除重复行啊.
string sqlstr = "select distinct a.名称,b.名称,a.ID,b.ID,a.上传时间,b.上传时间,a.photoinfo,b.photoinfo from Table_chanpin a, Table_chanpin2 b where a.名称 like '%" + key + "%' or b.名称 like '%" + key + "%'";
问题二:
我用下面这个查询语句的时候,报错了,提示:"无法解决 UNION 操作中 "Chinese_PRC_CI_AS" 和 "SQL_Latin1_General_CP1_CI_AS" 之间的排序规则冲突。"
我的数据库用的都是Chinese_PRC_CI_AS规则,没用到另外一种啊,怎么会冲突呢?请教! string sqlstr = "select * from Table_chanpin union select * from Table_chanpin2 where 名称 like '%" + key + "%'";
解决方案 »
- 两个日期之间数据的SQL语句
- sql server 2000 实现sql server 2005 dense_rank()函数功能
- 求一条SQL语句
- 对于经常查询的表,表的记录一般到多少条就需要建立索引了?
- 关于log explorer出现未能找到储存过程的问题.
- SQLSERVER中有宏指令一说吗??有的话请问该怎么使用??
- 一个 SQL 查询问题.
- 用VC编客户端程序,数据库服务器为SQLServer2000,用哪种技术更好呢?
- 谁能告诉我,用ADO不使用DSN连接到SQL Server 2000怎么写?急!!!!
- 我要在VC中使用动态SQL,请问我应该怎样在VC中设置环境?高分求教(100)?
- SQL2000 jdbc链接异常
- Microsoft SQL Server 2000接入的电脑数量怎么修改?
union select * from Table_chanpin2 where 名称 like '%" + key + "%'"
collate Chinese_PRC_CI_AS--试试
第二个问题已经解决了,第一个表有几个列的排序规则跟数据库默认的设置不一样,我刚改过来了.但第一个问题还是没成功,下面是我刚用的模糊查询语句.string sqlstr = "select * from Table_chanpin union select * from Table_chanpin2 where 名称 like '%" + key + "%'";
要不然改成动态试试?????
ID 名称 上传时间 photoinfo
1 散热器 2009-8-17 好用
2 隔膜阀 2009-8-17 真好用
3 配液罐 2009-8-17 真好用
4 止回阀 2009-8-17 卫生级
Table_chanpin2
ID 名称 上传时间 photoinfo
1 纯水罐 2009-8-17 好用
2 球形浓缩罐 2009-8-17 真好用
3 呼吸器 2009-8-17 真好用
4 酒精回收塔 2009-8-17 卫生级
--> 测试数据:[ta]
if object_id('[ta]') is not null drop table [ta]
go
create table [ta]([ID] int,[名称] varchar(6),[上传时间] datetime,[photoinfo] varchar(6))
insert [ta]
select 1,'散热器','2009-8-17','好用' union all
select 2,'隔膜阀','2009-8-17','真好用' union all
select 3,'配液罐','2009-8-17','真好用' union all
select 4,'止回阀','2009-8-17','卫生级'select * from [ta]
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([ID] int,[名称] varchar(10),[上传时间] datetime,[photoinfo] varchar(6))
insert [tb]
select 1,'纯水罐','2009-8-17','好用' union all
select 2,'球形浓缩罐','2009-8-17','真好用' union all
select 3,'呼吸器','2009-8-17','真好用' union all
select 4,'酒精回收塔','2009-8-17','卫生级'
----------------查询开始---------------------
select * from [ta] a where a.名称 like '%罐%'
union all
select * from [tb] b where b.名称 like '%罐%'
/*
ID 名称 上传时间 photoinfo
----------- ---------- ----------------------- ---------
3 配液罐 2009-08-17 00:00:00.000 真好用
1 纯水罐 2009-08-17 00:00:00.000 好用
2 球形浓缩罐 2009-08-17 00:00:00.000 真好用(3 行受影响)
*/
declare @Table_chanpin table( ID int,名称 varchar(20),上传时间 datetime, photoinfo varchar(20))
insert @Table_chanpin select
1 , '散热器' , '2009-8-17', '好用' union all select
2 , '隔膜阀' , '2009-8-17' , '真好用' union all select
3 , '配液罐' , '2009-8-17' , '真好用' union all select
4 , '止回阀', '2009-8-17' , '卫生级' declare @key varchar(20)
set @key='阀'select * from @Table_chanpin where 名称 like '%'+@key+'%'ID 名称 上传时间 photoinfo
----------- -------------------- ----------------------- --------------------
2 隔膜阀 2009-08-17 00:00:00.000 真好用
4 止回阀 2009-08-17 00:00:00.000 卫生级(2 行受影响)