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-]+)+$?'
我寻找一种方法来在我的 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-]+)+$?'