我在MySQL數據庫中的表「測試」,包含與查詢字符串的URL像如何從存儲在MySql中的URL字符串中提取查詢字符串值並將它們保存到新字段中?
http://www.mydomain.com?q=xxxx&p=yyyy
我已經創建了兩個字段的字段「URL」「QUERY_Q」和「query_p」來存儲表中的查詢值,但是我可以創建一個SQL從「url」字段中提取每個查詢字符串值並將它們保存在新字段中?
我在MySQL數據庫中的表「測試」,包含與查詢字符串的URL像如何從存儲在MySql中的URL字符串中提取查詢字符串值並將它們保存到新字段中?
http://www.mydomain.com?q=xxxx&p=yyyy
我已經創建了兩個字段的字段「URL」「QUERY_Q」和「query_p」來存儲表中的查詢值,但是我可以創建一個SQL從「url」字段中提取每個查詢字符串值並將它們保存在新字段中?
您可以使用LOCATE()
和SUBSTR()
爲Barmar說:
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'是第二個。但是,如果沒有,你自己看着辦吧;)
SQL小提琴很好! – Max 2013-03-13 18:14:48
如果你只是需要一個快速&骯髒的解決方案,這可能幫助:
UPDATE urls
SET
query_q = SUBSTRING_INDEX(SUBSTRING_INDEX(url, '?q=', -1), '&p=', 1),
query_p = SUBSTRING_INDEX(url, '&p=', -1)
請參閱小提琴here。
你試過了什麼?你應該能夠使用'LOCATE()'和'SUBSTR()'來提取這些片段。 – Barmar 2013-03-13 17:39:56
如果可能的話,捕獲q和p會更有效,然後將它們與URL同時插入到數據庫中。 – nickhar 2013-03-13 17:41:17
我知道,但我必須做它後處理 – Max 2013-03-13 17:42:17