考虑到与类似值的字符串列/123/12/34/56/5/
,什么是查询所有的最佳方法 ,其中包括给定数量的记录 (12
例如)?
我脑海中的解决方案是:
SELECT id FROM things WHERE things.path LIKE '%/12/%'
但由于前导,因此AFAIK该查询无法在列上使用索引%
。
必须有更好的东西。它是什么?
使用PostgreSQL,但 更希望 该解决方案也适用于其他DB。
在PostgreSQL
9.1中,您可以利用该pg_trgm
模块并用它构建一个GIN索引。
CREATE EXTENSION pg_trgm; -- once per database
CREATE INDEX things_path_trgm_gin_idx ON things USING gin (path gin_trgm_ops);
您的LIKE
表达式即使没有左锚也可以使用此索引。
在此处查看depesz的详细演示。
标准化它,如果 可以的话 。
我的Firebase查询有点麻烦。我想查询objects,其中objects子值包含某个字符串。到目前为止,我有一些东西看起来是这样的: 但这只给出起始值为“b”的对象。我想要包含字符串“b”的对象。我该怎么做?
问题内容: 我正在使用SQLAlchemy和SQLite3构建查询,其中我想选择其中String列包含特定子字符串的行。做到这一点的最佳方法是什么? 问题答案: 筛选。还有一个不区分大小写的搜索。 对于更高级的界面,您可以允许使用已知的“ dir”通配符。 笔记: 和是(如果数据库是由另一个应用程序创建的,则SQLSoup很有用) 对于SQLAlchemy Core是。当您需要原始SQL的所有功能
问题内容: 我一直在尝试找出如何使用MySQL进行查询的方法,该查询检查特定列中的值(字符串)是否包含某些数据(字符串),如下所示: 在PHP中,该函数称为,因此可能: 问题答案: 实际上很简单: 的是用于设置任何字符(无,一个或多个)的通配符。请注意,这在非常大的数据集上可能会变慢,因此,如果数据库增长,则需要使用全文索引。
我试图在Flatter Firebase中执行一个“where”查询,以按名称进行过滤(如果对象名为“Una casa roja”,用户写“casa”,则必须返回该对象)。我不知道我能问谁。我只有这个,但不是我想要的: 谢谢
我有一个具有字符串的实体: 如果没有,JPQL查询会是什么样子?
本文向大家介绍MySQL查询以检查字符串是否在同一行中包含值(子字符串)?,包括了MySQL查询以检查字符串是否在同一行中包含值(子字符串)?的使用技巧和注意事项,需要的朋友参考一下 由于我们需要匹配同一行中的字符串,因此请使用LIKE运算符。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是检查字符串是否在同一行中包含值