我搜索一种在表条目中查找给定字符串的一部分的方法。该字段是表中的 varchar。
寻找
/品牌/品牌/阿克托纳/厨房文章/项目/01945
并想找到这一行:
/brands/brand/actona/$
-或者也许是这一行
/brands/brand/actona/kitchen-$
有没有办法解决这个问题?问题是该表至少有 57k 个条目。我从一个旧的(太大的(nginx配置文件导入数据,这些文件都是永久重定向。
更新:我需要与"LIKE"大致相反的东西,因为我搜索的字符串的一部分存储在带有通配符($(的表中,该通配符也可以匹配另一个以相同开头的字符串。 /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-]+)+'$?'