你可以使用TRIM:
UPDATE table_name SET column = TRIM(LEADING 'some string' FROM column);
假設「一些字符串」沒有在「列」的內容開始超過1次連續發生。
所以,如果列包含它的工作:
"some string foo some string"
但不適用於:
"some string some string foo some string"
編輯 - 添加了MySQL的功能,以簡化流程
我看不到您正在使用的機制的替代方案,但是通過在MySQL中創建函數(如果您有權限)可以簡化執行它的操作:
delimiter $$
create function replace_first(
p_text_to_search varchar(255),
p_text_to_replace varchar(255)
)
returns varchar(255)
begin
declare v_found_pos int(11);
declare v_found_len int(11);
declare v_text_with_replacement varchar(255);
select locate(p_text_to_replace, p_text_to_search)
into v_found_pos;
select char_length(p_text_to_replace)
into v_found_len;
select concat(
left(p_text_to_search, v_found_pos-1),
mid(p_text_to_search, (v_found_pos + v_found_len))
)
into v_text_with_replacement;
return v_text_with_replacement;
end$$
delimiter ;
那麼你可以使用稱之爲:
select replace_first('bar foo foo baz foo', 'foo');
結果:
'bar foo baz'
我已經更新了我的答案 - 沒有完全不同,但它可能有幫助。 – Raad 2013-02-27 13:08:08