MySQL:Select 行,其中某列是给定字符串的一部分

MySQL: Select rows where a column is part of a given string

我寻找一种方法来在我的 table 条目中找到给定字符串的一部分。 table.

中的字段为 varchar

搜索

/brands/brand/actona/kitchen-article/item/01945

并想找到这一行:

/brands/brand/actona/$

- 或者这一行

/brands/brand/actona/kitchen-$

有办法解决这个问题吗?问题是 table 至少有 57k 个条目。我从一个旧的(太大的)nginx-config 文件导入数据,这些文件都是永久重定向。

更新: 我需要的与 "LIKE" 大致相反,因为我搜索的字符串的一部分存储在带有通配符 ($) 的 table 中,它也可以匹配另一个以相同开头的字符串. /brands/brand/actona/$ 可以匹配 /brands/brand/actona/123 也可以匹配 /brands/brand/actona/abc/def.

所以当我搜索 /brands/brand/actona/abc/def 甚至 /brands/brand/actona/abc/def/xyz 时,它需要匹配行 /brands/brand/actona/$

我实际上尝试从 nginx.config 文件外包 57k 永久重定向,以避免在每次请求时检查 6MB 配置文件。

我很抱歉我糟糕的英语:(

也许是这样的

SELECT * FROM TABLE
WHERE '/brands/brand/actona/kitchen-article/item/01945'
LIKE CONCAT('%', URLCOLUMN, '%');

这样的怎么样?

SELECT * FROM table
WHERE
column REGEXP '(/[a-zA-Z0-9-]+)+$?'