Mysql 使用LIKE-SQL语句进行简单的URL匹配
可以使用SQLMysql 使用LIKE-SQL语句进行简单的URL匹配,mysql,sql,regex,redirect,Mysql,Sql,Regex,Redirect,可以使用SQLLIKE语句来匹配带或不带尾随斜杠的字符串,就像在典型的URL上一样 前 有没有办法使用LIKE(或REGEX语句以外的其他语句),这样无论我是否传递它,它都会抓取该行/my path/或/my path SELECT * FROM table WHERE path LIKE '\/my-path\/?' // (borrowed regex syntax) this would grab a row path = '/my-path/' but would also grab a
LIKE
语句来匹配带或不带尾随斜杠的字符串,就像在典型的URL上一样
前
有没有办法使用LIKE(或REGEX语句以外的其他语句),这样无论我是否传递它,它都会抓取该行/my path/
或/my path
SELECT * FROM table WHERE path LIKE '\/my-path\/?' // (borrowed regex syntax) this would grab a row path = '/my-path/' but would also grab a row with path = '/my-path' (no trailing slash)
基本上,我想设置URL重定向,谁的记录存储在数据库中。我将URL路径(可能包含也可能不包含尾随斜杠)传递给它,并返回相应的记录,忽略任何可能的尾随斜杠。使用IN()
与两个字符串进行比较,而不是模式匹配
SELECT * FROM table WHERE path IN ('/my-path/', '/my-path')
使用LIKE运算符并将通配符%添加到输入的末尾
select * from table1 where path like concat(YOURINPUTHERE,'%')
看起来您需要使用
REGEX
,而不是像那样使用。是的,REGEX可以工作,但性能很差。此查询扫描整个表,不可索引('/my path','/my path/')
中的路径如何?
select * from table1 where path like concat(YOURINPUTHERE,'%')