2

我在 MySql 数据库的表“test”中有一个字段“url”,其中包含一个带有查询字符串的 URL,例如

http://www.mydomain.com?q=xxxx&p=yyyy

我创建了两个字段“query_q”和“query_p”来将查询值存储在表中,但是我可以创建一个 SQL 来从“url”字段中提取每个查询字符串值并将它们保存在新字段中?

4

2 回答 2

3

您可以使用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”。但如果没有,你可以弄清楚;)

于 2013-03-13T17:48:52.433 回答
0

如果您只需要一个快速而肮脏的解决方案,这可能会有所帮助:

UPDATE urls
SET
  query_q = SUBSTRING_INDEX(SUBSTRING_INDEX(url, '?q=', -1), '&p=', 1),
  query_p = SUBSTRING_INDEX(url, '&p=', -1)

在此处查看小提琴。

于 2013-03-13T17:49:40.620 回答