首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQLAlchemy .contains不区分大小写的and_查询

SQLAlchemy是一个Python的SQL工具和对象关系映射(ORM)库,它提供了一种灵活且强大的方式来操作关系型数据库。

在SQLAlchemy中,.contains()方法用于执行模糊查询,判断某个字段是否包含指定的字符串。默认情况下,.contains()方法是区分大小写的,但是可以通过使用SQLAlchemy的and_函数来实现不区分大小写的查询。

下面是一个完善且全面的答案:

SQLAlchemy是一个Python的SQL工具和对象关系映射(ORM)库。它提供了一种灵活且强大的方式来操作关系型数据库。.contains()方法是SQLAlchemy中的一个查询方法,用于执行模糊查询,判断某个字段是否包含指定的字符串。默认情况下,.contains()方法是区分大小写的。但是,我们可以通过使用SQLAlchemy的and_函数来实现不区分大小写的查询。

在进行不区分大小写的and_查询时,可以使用SQLAlchemy的func.lower()函数将字段和查询字符串都转换为小写,然后再进行比较。这样就可以忽略大小写进行查询。

下面是一个示例代码:

代码语言:txt
复制
from sqlalchemy import create_engine, Column, Integer, String, func
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 创建数据库引擎
engine = create_engine('数据库连接字符串')

# 创建会话工厂
Session = sessionmaker(bind=engine)
session = Session()

# 创建基类
Base = declarative_base()

# 定义模型类
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    
# 执行不区分大小写的and_查询
query = session.query(User).filter(func.lower(User.name).contains('查询字符串'.lower()))

# 获取查询结果
results = query.all()

# 打印查询结果
for user in results:
    print(user.name)

# 关闭会话
session.close()

在上面的示例代码中,我们首先创建了一个数据库引擎和会话工厂。然后定义了一个名为User的模型类,它对应数据库中的users表。接下来,我们使用session.query()方法创建了一个查询对象,并使用filter()方法进行过滤。在filter()方法中,我们使用了func.lower()函数将User.name字段和查询字符串都转换为小写,并使用.contains()方法进行模糊查询。最后,我们使用.all()方法获取查询结果,并打印出每个用户的名称。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM。

腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb

腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql 模糊查询实现区分大小写

需求说明: 有时候,我们需要从数据库中模糊查询,但是字母有大写也有小写。 1:在执行查询时候,需要忽略大小写。 2:以输入字母开头进行查询 创建表: ? 请点击此处输入图片描述 ?...请点击此处输入图片描述 假设用户现在要查询name是D或者d开头数据怎么? 解决需求一,忽略大小写。可以先查询大写,在查询小写。然后union 下 先查询出所有小写字母d开头: ?...在查询出所有大写字母D开头 ? 请点击此处输入图片描述 ? 使用union 进行连接。 ? 请点击此处输入图片描述 ? 当然这样也可以得到最终结果。但是这样执行从效率上来说很不好。...解决需求二:以输入字母开头进行模糊查询 在上面语句中我们可以看到使用是‘d%’或者是'D%'这样看上去好像有点不是很好。...综上要想解决并优化实现查询 D或者d开头可以使用到以下三个函数: 函数一:upper(keyword )。大写函数 函数二:lower(keyword )。

5K20

MySql查询区分大小写解决方案

背景 当我们输入不管大小写都能查询到数据,例如:输入 lingyejun 或者Lingyejun ,LingYeJun都能查询同样结果,说明查询条件对大小写不敏感。...collate规则:  *_bin: 表示是binary case sensitive collation,也就是说是区分大小写  *_cs: case sensitive collation,区分大小写... *_ci: case insensitive collation,区分大小写 一般而言我们设置字符集注意以下两种: utf8_general_ci --区分大小写 utf8_bin--区分大小写...当字符设置为区分大小写解决办法: 1.可以将查询条件用binary()括起来。 ...SET utf8 COLLATE utf8_bin DEFAULT NULL; 解决方案二: mysql查询默认是区分大小写 如: select * from some_table where str

1.8K20

Elasticsearch 如何实现查询聚合区分大小写

1、实战问题 最近社区里有多个关于区分大小写问题: 问题1:ES查询和聚合怎么设置区分大小写呢? 问题2:ES7.6 如何实现模糊查询区分大小写?...这或许是铭毅天下公众号使命所在。 这个问题不复杂,所以本文会言简意赅,直击要害! 2、问题拆解 2.1 拆解一:如果默认分词方式,能区分大小写吗?...是的,默认分词器是Standard 标准分词器,是区分大小写。...keyword 类型属于精准匹配,也就是说:单纯keyword 类型没法实现大小写区分。 进一步小结: 我们上面的组合multi-field 方式,并没有解决检索和聚合区分大小写问题?...刚才提及进一步处理,反映到我们解决方案上:就是可以做小写 lowercase 转换。 由于写入阶段和检索阶段:normalizer 都生效,所以就实现了我们想要区分大小写结果。

7.4K20

SQL Server区分大小写问题

SQL Server区分大小写问题   默认情况下,SQL Server区分大小写,如果数据表TESTTNAME列中有数据“abcd”和“Abcd”, 如果使用查询语句:select * from... test  where  tname  like 'a%',则查询结果会把上面的两条记录都查询出来,这一点上和Oracle有区别.  ...可以通过设置排序规使其区分大小写,可以分别在创建数据库、修改数据库、创建表字符型列(char\varchar\nchar \nvarchar等)时指定排序规则来实现。...   --修改后数据库中区分大小写 Create table test(tid int primary key,tname varchar(20) COLLATE  Chinese_PRC_CS_AS...) --这样创建tname列在使用SELECT 语句时就可以区分大小写了。

3.2K20

MySQL存储字段是区分大小写,你知道吗?

00 简单回顾 之前写过一篇关于mysql 对表大小写敏感问题(你有遇到过MySQL因大小写敏感导致问题吗),其实在mysql中字段存储内容是区分大小写,本篇进行简单总结。...想回顾一下: MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样: 1、数据库名与表名是严格区分大小写; 2、表别名是严格区分大小写; 3、列名与列别名在所有的情况下均是忽略大小写...`tb_user` (`id`, `username`) VALUES ('3', 'USER'); 使用 查询语句查询 username 为 全部小写user 用户,结果查询出这个三条记录全部都查询到了...02 解决方案 因为默认情况下字段内容是区分大小写,也即大小写不敏感。所以解决方案就是要新增字段内容校验规则。 使用mysql BINARY 关键字使搜索区分大小写。...2)utf8_general_ci:utf8_genera_ci区分大小写,ci为case insensitive缩写,即大小写不敏感。

2.4K30

关于flask入门教程-图书借阅系统-flask_SQLAlchemy高级用法

flask中一般使用flask-SQLAlchemy来操作数据库,使用起来比较简单,易于操作。而flask-SQLAlchemySQLAlchemyflask实现。...在Flask-SQLAlchemy中,查询操作是通过query对象操作数据。最基本查询是返回表中所有数据,可以通过过滤器进行更精确数据库查询。...本部分之所以迟迟未交差,主要是flask-SQLAlchemy关于query用法实在太少了,而且没有几个是比较全面的,动手加验证花了不少时间,而且很多等效语法,想比较出来个优劣势,选择最适合自己...本文主要验证了单表全表查询、单表单字段查询(like、==、>、<、in等等),单表多字段查询(and_、or_)进行组合,多表组合查询等等。...,单字段查询1 from sqlalchemy import select print('select(BookInfo).where(BookInfo.isbnno == isbnno)') queryinfo

36320

SQLAlchemy基本使用

SQLAlchemy介绍 SQLAlchemy是Python语言中一款开源软件ORM工具,采用简单Python语言,提供高性能数据库访问,实现完整企业级持续模型。...优点 1、设计灵活,代码健壮性和适应性 2、丰富社区群体 3、丰富插件以及和扩展 缺点 1、重量级API,学习曲线比较长 2、对于复杂联合查询,使用where过滤编写查询语句较为复杂...准备和初始化阶段 导入SQLAlchemy所需库文件 ?...最终显示结果 提交操作 # 回滚操作 # session.rollback() # 提交所修改操作 # session.commit() 查询操作 1、query查询使用...=, in, like, and_, or_等 其中 and_ 和 or_ 还需要在 sqlalchemy 导入模块才可使用 from sqlalchemy import or_,and_ 例子 ?

1.3K70

Flask中ORM框架之SQLAlchemy插件入门到弃坑

答: 学过数据库的人都应该知道索引是为了加快在关系型数据库中数据查找, 所以一般常常加在被搜索字段之上; 3.常用方法 4.查询方法 常用查询数据结果集: # 语法 模型类名.query.xxx...# 查询集 all() # 返回查询所有数据集,返回格式list first() # 返回查询第一行数据集 get(index) # 返回指定索引数据结果集 # 条件查询 filter..._ filter(and_(条件), 条件...__eq__(2)) Cat.query.filter(Cat.id == 2) # 2.姓名包含"喵"结果集 Cat.query.filter(Cat.name.contains("喵")) #...) 在筛选中offset与limit是区分顺序, 并且order_by必须放在前两者之前; 创建库表,库手动创建,而表采用SQLAlchemy对象 create_all ,删除则通过drop_all

3.1K10
领券