以下是问题 - 我有一个数据库列,其中包含用户填写的产品序列号,但没有任何类型的过滤器。例如,用户可以根据自己的解释将该字段填入:DC-538,DC 538或DC538,因为序列号通常在产品的金属部分,并且可能很难知道如果有空白例如空间。查询在非字母数字列中搜索字母数字字符串
我无法格式化当前列值,因为那么多品牌,我们无法确定如果取出非字母数字字符可能会导致问题。我的意思是,如果他们认为这些字符是官方号码的一部分。例如:“DC-538-XXX”和“DC538-XXX”可能与2种不同的产品有关。非常不可能,但我们不能认为它不会发生。
现在我需要通过我的网站上的序列号提供搜索......但是,如果用户搜索“DC538”而不是“DC 538”,他不会找到它。什么是最好的方法?
我相信完美的解决方案将有一种选择,将搜索确切的字符串,并从搜索词剥离非字母数字,并与数据库中的剥离字符串进行比较(我不喜欢没有)。但我不知道是否有办法只用SQL来完成。
任何想法?
干杯
你是在正确的轨道上,这是做到这一点。通过删除非字母数字字符解析来自用户的输入,并在它们已经通过相同的过程之后将其与列中存储的值进行比较。 –