我想更新一個數據庫替換舊字符爲新的,我的問題是,在該字符串的中間我有一些字符,我必須刪除,但我不知道長度或類型,我只知道當子字符串的開始和何時結束,對於〔實施例如何在一個子字符串的中間使用通配符,我不知道它的長度?
my-string=XXXXXXXX-endstring
所以,我還想讓它這樣
new-string-endstring
我知道我的字符串值,但不知道在子串中間XXXXX
有沒有辦法做到這一點?
謝謝。
我想更新一個數據庫替換舊字符爲新的,我的問題是,在該字符串的中間我有一些字符,我必須刪除,但我不知道長度或類型,我只知道當子字符串的開始和何時結束,對於〔實施例如何在一個子字符串的中間使用通配符,我不知道它的長度?
my-string=XXXXXXXX-endstring
所以,我還想讓它這樣
new-string-endstring
我知道我的字符串值,但不知道在子串中間XXXXX
有沒有辦法做到這一點?
謝謝。
如果你使用PHP,你可以做到以下幾點:
1)請有列值內my-string
文本
SELECT * FROM table_name WHERE column_name LIKE '%my-string%'
%
作爲全行的SELECT
通配符2)遍歷全部這些結果行和使用PHP的str_replace
更換my-string
爲new_string
,然後使用MySQL的UPDATE
在DB
您可以使用SUBSTRING_INDEX獲得所需要的字符串,並使用CONCAT追加新的字符串來更新列的新值。
Update TableA
Set columnA = CONCAT('newstring' , SUBSTRING_INDEX(columnA, '-', -1))
嗨,謝謝,但我怎麼知道我的字符串和結束字符串之間的字符串?在例子中:XXXX,我不知道長度,我想過使用子字符串,但我不知道如何... – jpganz18 2014-09-25 15:44:57
如果你想過濾出已知字符串之間的文本,看看PHP的'preg_match ()'功能。我不是正則表達式的專家,所以也許其他人可以幫忙嗎? – Philip 2014-09-25 17:19:14