当前位置: 首页 > 面试题库 >

SQLAlchemy查询,其中列包含子字符串

燕星鹏
2023-03-14
问题内容

我正在使用SQLAlchemy和SQLite3构建查询,其中我想选择其中String列包含特定子字符串的行。做到这一点的最佳方法是什么?


问题答案:

筛选db.table.column.like('%needle%')。还有ilike一个不区分大小写的搜索。

对于更高级的界面,您可以允许使用已知的“ dir”通配符。

if '*' in needle or '_' in needle: 
    looking_for = needle.replace('_', '__')\
                        .replace('*', '%')\
                        .replace('?', '_')
else:
    looking_for = '%{0}%'.format(needle)

result = db.table.filter(db.table.column.ilike(looking_for))

笔记:

  • db.table.filterdb.table.columnSQLSoup(如果数据库是由另一个应用程序创建的,则SQLSoup很有用)
  • 对于SQLAlchemy Core是select(column_list).where(table.c.column.ilike(expr))。当您需要原始SQL的所有功能而不必使用字符串插值手动编写语句时,可以使用此接口(将它与SQLSoup结合使用以进行自省,因此您无需声明表)
  • 对于SQLAlchemy声明式(在Flask中使用的一种),它是Model.query.filter(Model.field.ilike(expr))


 类似资料:
  • 我试图在Flatter Firebase中执行一个“where”查询,以按名称进行过滤(如果对象名为“Una casa roja”,用户写“casa”,则必须返回该对象)。我不知道我能问谁。我只有这个,但不是我想要的: 谢谢

  • 问题内容: 考虑到与类似值的字符串列,什么是查询所有的最佳方法 ,其中包括给定数量的记录 (例如)? 我脑海中的解决方案是: 但由于前导,因此AFAIK该查询无法在列上使用索引。 必须有更好的东西。它是什么? 使用PostgreSQL,但 更希望 该解决方案也适用于其他DB。 问题答案: 在PostgreSQL 9.1中,您可以利用该模块并用它构建一个GIN索引。 您的表达式即使没有左锚也可以使用

  • 我的Firebase查询有点麻烦。我想查询objects,其中objects子值包含某个字符串。到目前为止,我有一些东西看起来是这样的: 但这只给出起始值为“b”的对象。我想要包含字符串“b”的对象。我该怎么做?

  • 问题内容: 我一直在尝试找出如何使用MySQL进行查询的方法,该查询检查特定列中的值(字符串)是否包含某些数据(字符串),如下所示: 在PHP中,该函数称为,因此可能: 问题答案: 实际上很简单: 的是用于设置任何字符(无,一个或多个)的通配符。请注意,这在非常大的数据集上可能会变慢,因此,如果数据库增长,则需要使用全文索引。

  • 问题内容: 我想找到一个SQL查询来查找其中field1不包含$ x的行。我怎样才能做到这一点? 问题答案: 这是什么领域?IN运算符不能与单个字段一起使用,而应与子查询或预定义列表一起使用: 如果要搜索字符串,请使用LIKE运算符(但这会很慢): 如果将其限制为要搜索的字符串必须以给定的字符串开头,则可以使用索引(如果该字段上有索引)并且速度相当快:

  • 本文向大家介绍MySQL查询以检查字符串是否在同一行中包含值(子字符串)?,包括了MySQL查询以检查字符串是否在同一行中包含值(子字符串)?的使用技巧和注意事项,需要的朋友参考一下 由于我们需要匹配同一行中的字符串,因此请使用LIKE运算符。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是检查字符串是否在同一行中包含值