실제 프로그래밍에서는 SQLAlchemy 쿼리 조건을 기반으로 데이터베이스 레코드를 쿼리해야 합니다. 다음은 가장 일반적으로 사용되는 필터 목록입니다.
1. 등가 필터(==)
Equality 필터는 열이 특정 값과 같은지 여부를 확인하는 데 사용됩니다. 가장 일반적으로 사용되는 필터.
session.query(Account).filter(Account.user_name=='Mark') #判断字符串类型 session.query(Account).filter(Account.salary==2000) #判断数值类型
2, 동일하지 않은 필터(!=, <, >, <=, >=)
과 반대 동등 필터 중 불평등 필터는 같지 않음, 보다 작음, 보다 큼, 작거나 같음, 크거나 같음 등 여러 형태로 확장될 수 있습니다.
session.query(Account).filter(Account.user_name !="mark" ) #不等于字符串类型 session.query(Account).filter(Account.salary !=2000) #不等于数值类型 session.query(Account).filter(Account.salary >2000) #大于过滤器 session.query(Account).filter(Account.salary <2000) #小于过滤器 session.query(Account).filter(Account.salary <=2000) #小于等于过滤器 session.query(Account).filter(Account.salary >=2000) #大于等于过滤器
3. 퍼지 쿼리(좋아요)
퍼지 쿼리는 쿼리 문자열의 내용 중 일부만 알려진 경우에 적합합니다. 와일드카드 위치를 설정하면 다양한 결과를 쿼리할 수 있습니다. 와일드카드는 백분율 기호 %로 표시됩니다.
테이블의 데이터가 다음과 같다고 가정합니다.
id | user_name | 에디토리얼 🎜 🎜 #####시스템 관리자#####3000#### ## #####2#####debeca li#🎜🎜 ## 🎜 🎜#회계사3000 | |
---|---|---|---|
엔지니어# 🎜 🎜# | 3000 | 4 | |
Enfineer | # 🎜 🎜 #40005 | Van Berg | |
NULL# 🎜 🎜# | #查询所有名字包含字母i的用户,结果包括id为1、2、3、4的4条记录 session.query(Account).filter(Account.user_name.like('%i%')) #查询所有title中以Manager结尾的用户,结果包括id为1、5的两条记录 session.query(Account).filter(Account.title.like('%Manager')) #查询所有名字中以Da开头的用户,结果包括id为1、3的两条记录 session.query(Account).filter(Account.user_name.like('Da%')) 로그인 후 복사 | 참고: 퍼지 쿼리는 숫자 유형이 아닌 쿼리 문자열 유형에만 적용됩니다. ||
쿼리할 레코드의 필드 내용을 정확히 알고 있지만 하나의 필드에 여러 개가 있는 경우 내용 쿼리 시 포함 필터를 사용할 수 있습니다. | #查询id不为1,3,5的记录,结果包含id为2,4的两条记录 session.query(Account).filter(~Account.id.in_([1,3,5])) #查询工资不为2000、3000、4000的记录,结果包含id为5的1条记录 session.query(Account).filter(~Account.id.in_([2000,3000,4000])) #查询所有title不为Engineer和Accountant记录,结果包括id为1、5的两条记录 session.query(Account).filter(~Account.title.in_(['Accountant','Engineer'])) 로그인 후 복사 |
5. 비어 있는지 확인합니다(NULL인지, NULL이 아닌지 확인) | 빈 값 NULL은 데이터베이스 필드 . SQLAlchemy는 필드가 비어 있는지 판단을 지원합니다. 판단할 때 같음 값 및 같지 않음 필터를 사용하여 필터링하거나 is 및 isnot을 사용하여 필터링할 수 있습니다. |
6. 비논리적(~) | 조건을 충족하지 않는 레코드를 쿼리해야 하는 경우 비논리적을 사용할 수 있습니다. 특정 조건. | #查询id不为1、3、5的记录,结果包含id为2、4的两条记录 session.query(Account).filter(~Account.id.in_([1,3,5])) #查询工资不为2000、3000、4000的记录,结果包含id为5的1条记录 session.query(Account).filter(~Account.id.in_([2000,3000,4000])) #查询所有title不为Engineer和Accountant的记录,结果包括id为1、5的2条记录。 session.query(Account).filter(~Account.title.in(['Accountant','Engineer'])) 로그인 후 복사 |
7. AND 논리(and_) |
다음 세 문의 쿼리 결과는 동일하며 모두 ID가 3인 레코드입니다.
#直接在filter中添加多个条件即表示与逻辑 session.query(Account).filter(Account.title=='Engineer',Account.salary=3000) #用关机子and_进行逻辑查询 from sqlalchemy import and_ session.query(Account).filter(and_(Account.title=='Engineer',Account.salary=3000)) #通过多个filter的链接表示与逻辑 session.query(Account).filter(Account.title=='Engineer').filter(Account.salary=3000)
8 또는 논리(or_)
여러 조건을 쿼리해야 하는데 그 중 하나만 쿼리할 때 사용해야 합니다. 아니면 논리.
#引入或逻辑关键字or_ from sqlalchemy import or_ #查询title是Engineer或者salary为3000的记录,返回结果为id为1、2、3、4的记录 session.query(Account).filter(or_(Account.title=='Engineer',Account.salary=3000))
위 내용은 Python 프로그래밍에서 SQLAlchemy 쿼리 조건을 설정하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!