2016-09-02 2 views
0

내가 SQLite는 백엔드를 통해 SQLAlchemy의를 사용하고 있는데 나는 업데이트의 다음과 같은 종류의 수행하려는 :SQLAlchemy의 GLOB

UPDATE Measurement SET MeasurementCampaign=? WHERE filename GLOB ? 

을하지만이 SQLAlchemy의 워드 프로세서에서 동등한 GLOB 기능을 찾을 수 없습니다. 나는 꽤 많은 와일드 카드 표현을 가지고 있고, 나는 정말로 그것들을 다시 쓰지 않을 것이다. 이 같은 직접 SQL을 사용하여 시도했다

:

session.query(Measurement).\ 
       filter("WHERE filename GLOB {}".format(wildcard)).update({...}) 

하지만 그건 바로 생각하지 않습니다. "GLOB"에 대한 GenericFunction을 생성해야합니까? 그렇다면 어떻게해야합니까?

내가 말했듯이, 나는 평가할 많은 와일드 카드가있다. 그래서 나는 그들 모두에 대한 업데이트를 한꺼번에 수행 할 수있다.

+0

경우의'글로브의 b'는 (B, A)'글로브'과 동일합니다. –

답변

0

그것은 당신이 정확히이를 위해 'op' 기능을 사용할 수 있습니다 밝혀 : SQL 함수 사용하기 쉽다는

session.query(Measurement).filter(Measurement.filename.op('GLOB')(wildcard)).update({...})