postgresql совпадение с подстрокой - PullRequest
0 голосов
/ 15 апреля 2020

Использование 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, я получаю данные.

Как исправить вышеуказанный код ??

1 Ответ

2 голосов
/ 15 апреля 2020

Вы можете избежать % на %%.

Как-то так должно работать:

LIKE '%%samples.orig_id%%'
...