查询以在非字母数字列中搜索字母数字字符串

姆巴

这是问题所在-我有一个数据库列,其中包含用户填写的产品序列号,但没有任何类型的过滤器。例如,用户可以根据自己的解释将字段填写为:DC-538,DC 538或DC538-因为序列号通常在产品的金属部分中,因此很难知道是否有空白考试空间。

我无法设置当前列值的格式,因为那是很多品牌,我们不确定是否取出非字母数字字符会导致问题。我的意思是,如果他们认为这些字符是官方号码的一部分。例如:“ DC-538-XXX”和“ DC538-XXX”可能与2种不同的产品有关。可能性很小,但我们不能认为它不会发生。

现在,我需要在我的网站中按序列号进行搜索...但是,如果用户搜索的是“ DC538”而不是“ DC 538”,那么他将找不到它。最好的方法是什么?

我认为,理想的解决方案是选择一种将搜索准确的字符串,并从搜索项中剥离非字母数字,并将其与数据库中已剥离的字符串进行比较(我没有)的选择。但是我不知道是否只有SQL可以做到这一点。

有任何想法吗 ?

干杯

拉杜·格奥尔基(Radu Gheorghiu)

通过使用下面的功能(此处提供了答案)并将其修改为返回数字字符:

CREATE FUNCTION [dbo].[RemoveNonAlphaCharacters] (@Temp VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
    DECLARE @KeepValues AS VARCHAR(MAX)

    SET @KeepValues = '%[^a-z0-9]%'

    WHILE PatIndex(@KeepValues, @Temp) > 0
        SET @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')

    RETURN @Temp
END

您可以执行以下操作:

DECLARE Input NVARCHAR(MAX)
SET @Input = '%' + dbo.RemoveNonAlphaCharacters('text inputted by user') + '%'

SELECT *
FROM Table
WHERE dbo.RemoveNonAlphaCharacters(ColumnCode) LIKE @Input

这是一个示例工作的SQLFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从字母数字字符串中检索字母字符

来自分类Dev

如何让mod_rewrite在查询字符串中放入非字母数字字符?

来自分类Dev

仅计算字符串中的字母数字字符

来自分类Dev

生成字母数字字符串

来自分类Dev

递增字母数字字符串

来自分类Dev

在python中获取包含非字母数字元素的列表中非字母数字字符串的索引

来自分类Dev

如何在python中的字符串中替换非字母和数字字符

来自分类Dev

如何在 SPARQL 中替换字符串中的非字母数字字符

来自分类Dev

R中的非字母数字字符

来自分类Dev

识别字符串中的特殊非字母数字字符

来自分类Dev

从字符串中删除特殊的非字母数字字符

来自分类Dev

从删除所有非字母数字字符的字符串中获取列表

来自分类Dev

从字母数字字符串中删除数值

来自分类Dev

在SQL中过滤字母数字字符串

来自分类Dev

验证PHP中的字母数字字符串

来自分类Dev

从字母数字字符串中删除数值

来自分类Dev

检查字符串中的数字字母

来自分类Dev

Python在字母和数字字符串中搜索最大位数

来自分类Dev

如何在R中的字母数字字符串中获取数字/字母索引模式?

来自分类Dev

在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串

来自分类Dev

python如何在Excel单元格中粘贴非字母数字字符串

来自分类Dev

转换字符串中字符的位置以解决“间隙”(即字符串中的非字母数字字符)

来自分类Dev

grep整个非字母数字字符串和非数字

来自分类Dev

如何构建正则表达式来搜索具有非字母数字字符的字符串?

来自分类Dev

字母数字字符串末尾的javascript增量数字

来自分类Dev

javascript | 匹配字母数字或数字字符串

来自分类Dev

如何从包含字母数字字符串的列中获取最大值?

来自分类Dev

在每个非字母/非数字字符处分割字符串

来自分类Dev

Python正则表达式从字符串中除去括号中的非字母数字字符

Related 相关文章

  1. 1

    从字母数字字符串中检索字母字符

  2. 2

    如何让mod_rewrite在查询字符串中放入非字母数字字符?

  3. 3

    仅计算字符串中的字母数字字符

  4. 4

    生成字母数字字符串

  5. 5

    递增字母数字字符串

  6. 6

    在python中获取包含非字母数字元素的列表中非字母数字字符串的索引

  7. 7

    如何在python中的字符串中替换非字母和数字字符

  8. 8

    如何在 SPARQL 中替换字符串中的非字母数字字符

  9. 9

    R中的非字母数字字符

  10. 10

    识别字符串中的特殊非字母数字字符

  11. 11

    从字符串中删除特殊的非字母数字字符

  12. 12

    从删除所有非字母数字字符的字符串中获取列表

  13. 13

    从字母数字字符串中删除数值

  14. 14

    在SQL中过滤字母数字字符串

  15. 15

    验证PHP中的字母数字字符串

  16. 16

    从字母数字字符串中删除数值

  17. 17

    检查字符串中的数字字母

  18. 18

    Python在字母和数字字符串中搜索最大位数

  19. 19

    如何在R中的字母数字字符串中获取数字/字母索引模式?

  20. 20

    在另一个由非字母数字字符分隔的字符串中搜索(任何)字符串

  21. 21

    python如何在Excel单元格中粘贴非字母数字字符串

  22. 22

    转换字符串中字符的位置以解决“间隙”(即字符串中的非字母数字字符)

  23. 23

    grep整个非字母数字字符串和非数字

  24. 24

    如何构建正则表达式来搜索具有非字母数字字符的字符串?

  25. 25

    字母数字字符串末尾的javascript增量数字

  26. 26

    javascript | 匹配字母数字或数字字符串

  27. 27

    如何从包含字母数字字符串的列中获取最大值?

  28. 28

    在每个非字母/非数字字符处分割字符串

  29. 29

    Python正则表达式从字符串中除去括号中的非字母数字字符

热门标签

归档