所以我有一个在我的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’然后将其解释为记录的一个字段。使用’||’连接与字面百分号:
SELECT id FROM TAG_TABLE WHERE 'aaaaaaaa' LIKE '%' || tag_name || '%';