반응형
sqlalchemy는 NULL이 아닙니다.
특정 열에서 NULL이 아닌 값을 선택하기 위해 SQL에서와 같이 필터를 추가하려면 어떻게해야합니까?
SELECT *
FROM table
WHERE YourColumn IS NOT NULL;
SQLAlchemy 필터로 어떻게 똑같이 할 수 있습니까?
select = select(table).select_from(table).where(all_filters)
column_obj != None
IS NOT NULL
제약 조건 을 생성합니다 .
열 컨텍스트에서 절을 생성합니다
a != b
. 대상이None
이면IS NOT NULL
.
또는 사용 isnot()
(0.7.9의 새로운 기능) :
IS NOT
운영자를 구현하십시오 .일반적으로 로 해석되는
IS NOT
의 값과 비교할 때 자동으로 생성됩니다 . 그러나 특정 플랫폼에서 부울 값과 비교할 경우 명시 적으로 사용하는 것이 바람직 할 수 있습니다.None
NULL
IS NOT
데모:
>>> from sqlalchemy.sql import column
>>> column('YourColumn') != None
<sqlalchemy.sql.elements.BinaryExpression object at 0x10c8d8b90>
>>> str(column('YourColumn') != None)
'"YourColumn" IS NOT NULL'
>>> column('YourColumn').isnot(None)
<sqlalchemy.sql.elements.BinaryExpression object at 0x104603850>
>>> str(column('YourColumn').isnot(None))
'"YourColumn" IS NOT NULL'
0.7.9 버전부터는 다음 .isnot
과 같이 제약 조건을 비교하는 대신 필터 연산자 를 사용할 수 있습니다 .
query.filter(User.name.isnot(None))
이 방법은 pep8이 우려되는 경우에만 필요합니다.
출처 : sqlalchemy 문서
다른 사람이 궁금해하는 경우 다음 is_
을 생성 하는 데 사용할 수 있습니다 foo IS NULL
.
>>> sqlalchemy.sql 가져 오기 열에서 >>> print column ( 'foo'). is_ (None) foo는 NULL입니다. >>> print column ( 'foo'). isnot (None) foo는 NULL이 아닙니다.
나를 위해 다음을 수행하면 예상되는 동작을 얻습니다.
query = query.filter(Model1.column1 == None)
다음을 수행하면 필터가 적용되지 않는 것 같습니다.
query = query.filter(Model1.column1 is None)
참고 URL : https://stackoverflow.com/questions/21784851/sqlalchemy-is-not-null-select
반응형
'Programing' 카테고리의 다른 글
자바 스크립트에서 십진수 자르기 (반올림 아님) (0) | 2020.10.23 |
---|---|
Android에서 addr2line을 사용하는 방법 (0) | 2020.10.23 |
Picasso 파일 시스템에서 이미지로드 (0) | 2020.10.23 |
SimpleDateFormat 및 로케일 기반 형식 문자열 (0) | 2020.10.23 |
jasmine-node 비동기 사양에서 시간 제한을 어떻게 변경합니까? (0) | 2020.10.23 |