我正在搜索部分將輸入值與存儲的記錄進行比較。具有像AB 09 C D 1234這樣的值的數據庫。我用(空格)輸入字符串來與存儲的值匹配,但是當我給出像AB09 CD 1234這樣的輸入時,它不會產生上面的記錄。PostregSQL中的列表匹配記錄
SELECT * FROM some_vehicle WHERE vehicle_number ILIKE E\'%AB09 CD 1234%'
vehicle_number在DB:AB 09 C D 1234
輸入字符串:AB09 CD 1234
我想導致其與輸入字符串的組合每一個可能的場景。 PostgreSQL有沒有辦法做到這一點?
「替換」功能可以消除字符串中的空白區域。 PostgreSQL有沒有辦法消除所有特殊字符以及空白。我正在嘗試不同的正則表達式,如
regexp_replace(vehicle_number,'[^ a-z0-9 \ s]','')和 regexp_replace(vehicle_number,'[(| - |)| \:| \ @ @ |#| \ $ | * |。|!| \,]','') 但它不起作用。
謝謝
經過幾次嘗試後發現它!非常接近它。 「[^ a-zA-Z0-9]」模式在PostgreSQL中消除了包含'g'選項的所有特殊字符作爲regexp_replace的第四個參數。
你的意思是「比較找到任何子字符串,忽略空格」? –