我在 MySql 数据库的表“test”中有一个字段“url”,其中包含一个带有查询字符串的 URL,例如
http://www.mydomain.com?q=xxxx&p=yyyy
我创建了两个字段“query_q”和“query_p”来将查询值存储在表中,但是我可以创建一个 SQL 来从“url”字段中提取每个查询字符串值并将它们保存在新字段中?
我在 MySql 数据库的表“test”中有一个字段“url”,其中包含一个带有查询字符串的 URL,例如
http://www.mydomain.com?q=xxxx&p=yyyy
我创建了两个字段“query_q”和“query_p”来将查询值存储在表中,但是我可以创建一个 SQL 来从“url”字段中提取每个查询字符串值并将它们保存在新字段中?
您可以使用LOCATE()
andSUBSTR()
正如 Barmar 所说:
请参阅SQL 小提琴。
update t1 set
q=substr(url, locate('?q=',url)+3, locate('&p=',url)-locate('?q=',url)-3),
p=substr(url, locate('&p=',url)+3, length(url)-locate('&p=',url)-2);
当然,要让它起作用,q 必须是第一个参数,前面是 '?' 第二个是“p”。但如果没有,你可以弄清楚;)
如果您只需要一个快速而肮脏的解决方案,这可能会有所帮助:
UPDATE urls
SET
query_q = SUBSTRING_INDEX(SUBSTRING_INDEX(url, '?q=', -1), '&p=', 1),
query_p = SUBSTRING_INDEX(url, '&p=', -1)
请在此处查看小提琴。