使用 LIKE 搜索下划线

Searching for an underscore with LIKE

我正在使用 Postgres 服务器,但在处理 XML 数据类型时遇到困难。 网上关于 Postgres 和 XML 的信息似乎有限。

我正在尝试将一列 XML 数据插入临时 table,其中 Location 节点包含下划线,使用类似于 SQL [=12= 中的 LIKE 的内容]

<Country>
    <ID>813</ID>
    <Location>IB_202</Loction>
</Country>

我正在使用这个 SQL 查询来获取数据

SELECT CAST(xpath('/Country/Location/text()', penDetails) as text[])
FROM "dbSystemCheck".tbl_countryitems
WHERE personId = 314
AND CAST(xpath('/Country/Location/text()', penDetails) LIKE '%[_]%'
LIMIT 10

临时 table 设置与原始数据 table 相同,我希望只是拆分位置。

我读到需要转义下划线,因此 []

I have read that underscores need to be escaped hence the []

方括号在SQL LIKE语句中没有特殊含义。如果你想转义下划线你需要指定一个 ESCAPE 字符:

AND CAST(xpath('/Country/Location/text()', penDetails) LIKE '%\_%' ESCAPE '\'

如果需要,您也可以使用不同的转义字符:

AND CAST(xpath('/Country/Location/text()', penDetails) LIKE '%#_%' ESCAPE '#'