所以我在我的 Postgresql 中有一个:
TAG_TABLE ========================== id tag_name -------------------------- 1 aaa 2 bbb 3 ccc
为了简化我的问题,当字符串“aaaaaaaa”包含“tag_name”时,我想做的是从 TAG_TABLE 中选择“id”。所以理想情况下,它应该只返回“1”,这是标签名称“aaa”的 ID
到目前为止,这就是我正在做的事情:
SELECT id FROM TAG_TABLE WHERE 'aaaaaaaaaaa' LIKE '%tag_name%'
但显然,这不起作用,因为 postgres 认为 ‘%tag_name%’ 表示包含子字符串 ‘tag_name’ 而不是该列下的实际数据值的模式。
如何将 tag_name 传递给模式?
您应该tag_name在引号之外使用;然后它被解释为记录的一个字段。使用'||'文字百分号连接:
tag_name
'||'
SELECT id FROM TAG_TABLE WHERE 'aaaaaaaa' LIKE '%' || tag_name || '%';