Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật mảng được tuần tự hóa trong mysql (mà không cần giải đáp thắc mắc?)

Nếu bạn chỉ đơn giản tìm kiếm và thay thế như vậy, bạn sẽ khiến dữ liệu được tuần tự hóa không thể nhận dạng được. Đây là những gì bạn cần làm:

$old = 'http://www.google.com';
$new = 'http://www.someplace.com';

$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';

$query = "UPDATE config SET array=REPLACE(array, '{$search}', '{$replace}');";

Thay thế $old$new với url hiện tại và mục tiêu của bạn, hãy chạy tập lệnh và thực hiện $query đã tạo .

Đây là một giải pháp SQL thuần túy:

SET @search := 'http://www.original.com';
SET @replace := 'http://www.target.com';
UPDATE config SET array=REPLACE(array, CONCAT('s:', LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"', @replace, '"'));

Lưu ý rằng điều này sẽ thay thế MỌI sự xuất hiện của chuỗi tìm kiếm trong mảng được tuần tự hóa của bạn. Nếu bạn đang tìm cách thay thế một khóa cụ thể, bạn phải thay thế một khóa cụ thể hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng Python và MySQL trong Quy trình ETL:SQLAlchemy

  2. Truy vấn đã tham gia thiếu bản ghi

  3. Làm thế nào để tôi dễ dàng xác định tuổi từ ngày sinh nhật? (php)

  4. Làm thế nào để sửa chữa cột không xác định Bí danh truy vấn MySQL? 2018

  5. CẬP NHẬT với CHỌN, nó sẽ khóa từng hàng hoặc tất cả các bản ghi đã CHỌN