簡體   English   中英

根據另一列查詢到mysql中的REGEX_REPLACE

[英]Query to REGEX_REPLACE in mysql as per another column

我有一個帶有兩列C1和C2的表T。

我想編寫一個查詢,如下所示:

UPDATE TABLE T 
SET C2 = REGEX_REPLACE(
    "(REG_SUB_PART1)(REG_SUB_PART2)(REG_SUB_PART3)", 
    C1, 
    REG_SUB_PART1
) 
WHERE C2="ABC";

實際上,我想使用另一列C1,假設URL為“ http://www.google.com ”,並將C2設置為其中的一部分,例如,使用$3 (第三部分)的regex, $3 “ google.com "(http://)?(www\\.)?([a-zA-Z0-9]*)"

因此,C2應該設置為“ google.com”。

如何使用MySql完成?

PS:請不要專注於特定的正則表達式。

無法通過http://dev.mysql.com/doc/refman/5.0/en/regexp.html在MySQL中進行正則表達式捕獲組。 但是,如果您知道c1中的起始索引,則可以使用另一種方法來完成類似的操作。

更新t set c2 = substring(c1,12)其中c2 ='abc';

如果這是c1列中的值,它將從“ http://www.google.com ”獲取子字符串“ google.com”。

可能會派上用場的其他一些MySQL字符串函數是substring,substring_index和locate。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM