以下是問題 - 我有一個數據庫列,其中包含用戶填寫的產品序列號,但沒有任何類型的過濾器。例如,用戶可以根據自己的解釋將該字段填入:DC-538,DC 538或DC538,因爲序列號通常在產品的金屬部分,並且可能很難知道如果有空白例如空間。查詢在非字母數字列中搜索字母數字字符串
我無法格式化當前列值,因爲那麼多品牌,我們無法確定如果取出非字母數字字符可能會導致問題。我的意思是,如果他們認爲這些字符是官方號碼的一部分。例如:「DC-538-XXX」和「DC538-XXX」可能與2種不同的產品有關。非常不可能,但我們不能認爲它不會發生。
現在我需要通過我的網站上的序列號提供搜索......但是,如果用戶搜索「DC538」而不是「DC 538」,他不會找到它。什麼是最好的方法?
我相信完美的解決方案將有一種選擇,將搜索確切的字符串,並從搜索詞剝離非字母數字,並與數據庫中的剝離字符串進行比較(我不喜歡沒有)。但我不知道是否有辦法只用SQL來完成。
任何想法?
乾杯
你是在正確的軌道上,這是做到這一點。通過刪除非字母數字字符解析來自用戶的輸入,並在它們已經通過相同的過程之後將其與列中存儲的值進行比較。 –