SQL的LIKE模糊查询结果只有命令完成一句话,却无任何表格显示查询结果

nextdoor2 2012-02-23 03:58:19
相关代码如下:
ALTER PROCEDURE [dbo].[BOOK_frm_SearchBook](
@type char(100) = null,
@keywords char(30) = null,
@searchtype char(30) = null
)
AS
BEGIN

IF(@type = 'tab_QSearch')
BEGIN
IF(@searchtype = '图书名称')
BEGIN
SELECT
BOOK_Rec.BOOK_NAME As 图书名称,
BOOK_Rec.BOOK_NUM As 图书编码,
BOOK_Rec.BOOK_ISBN As 图书ISBN码,
BOOK_TYPE.BOOK_TYPE_NAME As 图书类型名称,
BOOK_Rec.BOOK_AUTHOR As 图书作者,
BOOK_Rec.BOOK_PRESS As 图书出版社,
BOOK_Rec.BOOK_PRESS_DATE As 图书出版日期,
BOOK_Rec.BOOK_PRICE As 图书价格,
BOOK_Rec.BOOK_PLACE As 图书存放位置,
BOOK_Rec.BOOK_MUCH As 图书库存数目,
BOOK_Rec.BOOK_FLAG_BORROW As 图书可借与否,
BOOK_Rec.BOOK_TEXT As 图书备注,
BOOK_INTRODUTION As 图书内容简介
FROM BOOK_Rec INNER JOIN
BOOK_TYPE ON BOOK_Rec.BOOK_TYPE_ID = BOOK_TYPE.BOOK_TYPE_ID
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
END
END


END
执行该存储过程后只有提示:
命令成功完成,没有出现任何表格来显示查询结果.
请问该如何才能得到我查询后的结果?
...全文
323 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nextdoor2 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 nextdoor2 的回复:
引用 6 楼 的回复:

引用 5 楼 nextdoor2 的回复:
引用 3 楼 wufeng4552 的回复:

怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题


有可以参考的写法吗?

先把条件去掉

然后执行
如果有数据就说明条件有……
[/Quote]

最新的代码如下: [显然查询的结果就是显示所有的内容,不包含模糊查询关键字的数据也会出现]
ALTER PROCEDURE [dbo].[BOOK_frm_SearchBook](
@type char(100) = null,
@keywords char(30) = null,
@searchtype char(30) = null
)
AS
BEGIN

IF(@type = 'tab_QSearch')
BEGIN
IF(@searchtype = '图书名称')
BEGIN
SELECT
ltrim(rtrim(BOOK_Rec.BOOK_NAME)) As 图书名称,
ltrim(rtrim(BOOK_Rec.BOOK_NUM)) As 图书编码,
ltrim(rtrim(BOOK_Rec.BOOK_ISBN)) As 图书ISBN码,
ltrim(rtrim(BOOK_TYPE.BOOK_TYPE_NAME)) As 图书类型名称,
ltrim(rtrim(BOOK_Rec.BOOK_AUTHOR)) As 图书作者,
ltrim(rtrim(BOOK_Rec.BOOK_PRESS)) As 图书出版社,
BOOK_Rec.BOOK_PRESS_DATE As 图书出版日期,
BOOK_Rec.BOOK_PRICE As 图书价格,
BOOK_Rec.BOOK_PLACE As 图书存放位置,
BOOK_Rec.BOOK_MUCH As 图书库存数目,
ltrim(rtrim(BOOK_Rec.BOOK_FLAG_BORROW)) As 图书可借与否,
BOOK_Rec.BOOK_TEXT As 图书备注,
BOOK_INTRODUTION As 图书内容简介
FROM BOOK_Rec INNER JOIN
BOOK_TYPE ON BOOK_Rec.BOOK_TYPE_ID = BOOK_TYPE.BOOK_TYPE_ID
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ ']%'
END
紫竹林畔 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 nextdoor2 的回复:]
引用 6 楼 的回复:

引用 5 楼 nextdoor2 的回复:
引用 3 楼 wufeng4552 的回复:

怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题


有可以参考的写法吗?

先把条件去掉

然后执行
如果有数据就说明条件有问题
反之就是前面的条件都不成立
压根就没执……
[/Quote]
这显然就找到问题所在了
你条件是不成立
才没有结果返回的
试下
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ ']%'
nextdoor2 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 nextdoor2 的回复:
引用 3 楼 wufeng4552 的回复:

怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题


有可以参考的写法吗?

先把条件去掉

然后执行
如果有数据就说明条件有问题
反之就是前面的条件都不成立
压根就没执行查询语句
[/Quote]

重新执行一下,发现出现查询结果表格了.但显然查询的结果就是显示所有的内容,不包含模糊查询关键字的数据也会出现.查询语句不管吗?
紫竹林畔 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nextdoor2 的回复:]
引用 3 楼 wufeng4552 的回复:

怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题


有可以参考的写法吗?
[/Quote]
先把条件去掉

然后执行
如果有数据就说明条件有问题
反之就是前面的条件都不成立
压根就没执行查询语句
nextdoor2 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]

怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题
[/Quote]

有可以参考的写法吗?
nextdoor2 2012-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]

那就说明,没有执行你的内部SQL语句,只到了第一层的判断语句.
[/Quote]

为什么下面的判断执行不下去?
水族杰纶 2012-02-23
  • 打赏
  • 举报
回复
怀疑是
WHERE BOOK_Rec.BOOK_NAME LIKE '%[' +@keywords+ '%]'
这个条件有问题
mayuanf 2012-02-23
  • 打赏
  • 举报
回复
没有赋参数吧

exec [dbo].[BOOK_frm_SearchBook] 'tab_QSearch'
dawugui 2012-02-23
  • 打赏
  • 举报
回复
那就说明,没有执行你的内部SQL语句,只到了第一层的判断语句.

22,209

社区成员

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

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