与子字符串匹配的postgresql

postgresql matching with substring

使用 python pstcopg2

我想做一个类似

的数据框
df = sql.read_sql("""SELECT objects.sampleid, MAX(objects.projid) AS projid, 
                            MAX(samples.t01) AS hdrfilename, MAX(samples.t06) AS ctdfilename, 
                            MAX(objects.objdate) || ' ' || MAX(objects.objtime) AS objdatetime, 
                            MAX(objects.latitude) AS latitude, MAX(objects.longitude) AS longitude, 
                            MAX(objects.orig_id) AS orig_id 
        FROM samples, objects 
        WHERE objects.projid in (%s) and objects.orig_id LIKE '%samples.orig_id%'
        GROUP BY objects.sampleid"""%(projid_list), mydb)

但是出现错误信息

    GROUP BY objects.sampleid"""%(projid_list), mydb) 
TypeError: not enough arguments for format string 

我想主要问题出在这一行,

objects.orig_id LIKE '%samples.orig_id%'

如果我使用

应用代码
objects.orig_id = samples.orig_id

它有效,但这不是我想要的。 我想如果 objects.orig_id 包含 samples.orig_id,我得到数据。

如何更正上面的代码??

您可以通过 %%.

转义 %

像这样的东西应该可以工作:

LIKE '%%samples.orig_id%%'