Để thay thế một chuỗi không cố định, bạn nên sử dụng các dấu phân cách của chuỗi mà bạn muốn thay thế. Trong ví dụ sau, các dấu phân cách là START
và END
, vì vậy bạn nên thay thế chúng bằng những thứ bạn đang tìm kiếm. Tôi đã bao gồm cả hai tùy chọn:có và không thay thế dấu phân cách.
Dữ liệu mẫu giả sử một bảng t
với một cột col
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
Đây là truy vấn tạo đầu ra trước đó từ col
cột. Tất nhiên, chỉ sử dụng phần truy vấn mà bạn cần (có hoặc không thay thế dấu phân cách).
SELECT col,
INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'') with_delimiters_replaced,
INSERT(col,
LOCATE(@start, col) + CHAR_LENGTH(@start),
LOCATE(@end, col) - LOCATE(@start, col) - CHAR_LENGTH(@start),
'') without_delimiters_replaced
FROM t, (SELECT @start := 'START', @end := 'END') init
Điều này sẽ hoạt động với cả START
và END
chuỗi có trong văn bản đầu vào.
Để thực sự cập nhật dữ liệu, hãy sử dụng UPDATE
lệnh (sử dụng phiên bản truy vấn bạn thực sự cần, trong trường hợp này là phiên bản có dấu phân cách được thay thế):
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
Trong trường hợp cụ thể của bạn, hãy thay thế START
với:
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
và END
với:
.js"></script>