我搜索一种在表条目中查找给定字符串的一部分的方法。 该字段是表中的varchar。
搜索
/品牌/品牌/ actona /厨房物品/产品/ 01945
并希望找到这一行:
/brands/brand/actona/$
- 或者这一行
/brands/brand/actona/kitchen-$
有没有办法解决这个问题?问题是该表至少有57,000个条目。我从一个旧的(太大的)nginx-config文件导入数据,这些文件都是永久重定向。
更新:
我需要与“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配置文件。
对于我可怕的英语,我很抱歉:(
答案 0 :(得分:2)
也许像
SELECT * FROM TABLE
WHERE '/brands/brand/actona/kitchen-article/item/01945'
LIKE CONCAT('%', URLCOLUMN, '%');
答案 1 :(得分:0)
这样的事情怎么样?
SELECT * FROM table
WHERE
column REGEXP '(/[a-zA-Z0-9-]+)+\$?'