我正在搜索部分将输入值与存储的记录进行比较。具有像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的第四个参数。
你的意思是“比较找到任何子字符串,忽略空格”? –