通用增刪改查增加find_in_set
This commit is contained in:
parent
c297e20679
commit
025ffd58b4
|
@ -1,5 +1,5 @@
|
|||
from pydantic import BaseModel
|
||||
from sqlalchemy import create_engine, Column, and_, asc, desc
|
||||
from sqlalchemy import create_engine, Column, and_, asc, desc, func
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker, Session, DeclarativeMeta, Query
|
||||
from typing import Literal, List, Any, Optional
|
||||
|
@ -49,7 +49,7 @@ class SqlalchemyConnect:
|
|||
|
||||
# 通用查询接口
|
||||
|
||||
QueryType = Literal['=', '==', '>', '>=', '<', '<=', 'in', 'like', 'range']
|
||||
QueryType = Literal['=', '==', '>', '>=', '<', '<=', 'in', 'like', 'range', 'find_in_set']
|
||||
|
||||
|
||||
class QueryParam(BaseModel):
|
||||
|
@ -119,10 +119,13 @@ def query_common_core(model, query: Query, param_list: List[QueryParam]):
|
|||
query = query.filter(column <= value)
|
||||
if query_type == "in":
|
||||
query = query.filter(column.in_(value))
|
||||
if query_type == "find_in_set":
|
||||
query = query.filter(func.find_in_set(value, column))
|
||||
if query_type == "like":
|
||||
query = query.filter(column.like(f'%{value}%'))
|
||||
if query_type == "range":
|
||||
query = query.filter(and_(column >= value[0], column <= value[1]))
|
||||
|
||||
return query
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue