[英]How to handle search variant on MySQL query?
我對我們的PhoneNos台電話號碼列表
ID | PhoneNo
1 | +61 2 9666 8000
我們嘗試將此電話號碼搜索到“ 內容”表中(即desc字段)
實際的挑戰是:
desc字段是文本,輸入內容可以是任何東西,例如:
ContentID | Desc
1 | bla bla ... +61 (02) 9666 8000 ... bla bla
2 | bla bla ... +61-2-9666-8000 bla bla
3 | bla bla ... +61 2 96668000 bla bla
4 | bla bla ... +61296668000 00116129668000 bla bla
或可能是由多余的間距安排的任何東西,例如
5 | bla bla ... +61 (02) 9666 8000 ... bla bla
6 | bla bla ... +61-2 9662 0382 ... bla bla
那還是澳大利亞的電話號碼,但是可能是美國或其他任何國家,所以它與一個特定的國家並不緊密。
這款手機之前和之后沒有任何模式。 因此可以是任何東西。
無論如何,有沒有容易處理這種事情的方法? 我可能可以在上面構造每個條件,但我只是想知道是否有更好的解決方案。
只需將用戶輸入規范化為易於搜索的格式,即“ + [x]”。 如果用戶輸入其他空格,請將其刪除。 如有必要,添加國家代碼。 從開始處刪除00並替換為+。 您甚至可以將“電話號碼”分為三列,以使搜索更加容易。
為什么不從電話號碼中刪除特殊符號,然后將其存儲為數字字符串呢?
您需要考慮的唯一情況是+,因為它替換了00。
因此,基本上,您的記錄將只有數字,您的輸入將只有數字。 只要確保在數據庫和輸入中都將+標准化為某種形式即可。
我要做的是將它們全部都用00而不是+來存儲,這樣當通過00進行搜索輸入時,它就會起作用,以及使用+進行搜索。 希望這是有道理的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.