繁体   English   中英

在sql server 2005中执行通配符搜索的最佳方法是什么?

[英]What is the best way to do a wildcard search in sql server 2005?

所以我有一个stored procedure ,它接受像1234567890这样的产品代码。 我想为这些产品提供通配符搜索选项。 (即123456* ),并返回所有匹配的产品。 做这个的最好方式是什么?

我过去曾使用过类似以下内容的东西:

SELECT @product_code = REPLACE(@product_code, '*', '%')

然后做一个LIKE上搜索product_code场,但我觉得它可以得到改善。

您已经在做的事就是尽力而为。

您可以尝试的一种优化方法是确保您允许的列上都有索引。 SQL Server仍将需要对通配符搜索进行全面扫描,但是它将仅针对特定索引而不是整个表。

与往常一样,在进行任何更改之前和之后检查查询计划是一个好主意。

几个随机的想法

这取决于,但您可能要考虑:

  • 默认情况下,始终寻找子字符串。 例如,如果用户输入“ 1234”,则您搜索:

    WHERE产品,例如“%1234%”

  • 允许用户完全控制。 即简单地接受他们的输入并将其传递给LIKE子句。 这意味着他们可以提出自己的自定义搜索。 仅当您的用户有兴趣学习时,此功能才有用。

    像@input这样的产品

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM