Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memperbarui array serial di mysql (tanpa unserialising?)

Jika Anda hanya mencari dan mengganti seperti itu, Anda akan membuat data serial tidak dapat digunakan. Inilah yang perlu Anda lakukan:

$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}');";

Ganti $old dan $new dengan url Anda saat ini dan target, jalankan skrip dan jalankan $query . yang dihasilkan .

Inilah solusi SQL murni:

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, '"'));

Perhatikan bahwa ini akan menggantikan SETIAP kemunculan string pencarian di array serial Anda. Jika Anda ingin mengganti kunci tertentu, Anda harus lebih, ya, spesifik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara mendapatkan laporan kesalahan terperinci ketika skrip php-mysql gagal?

  2. Menggunakan Python dan MySQL dalam Proses ETL:Menggunakan Python dan SQLAlchemy

  3. Oracle - Kesalahan:'ORA-01400:tidak dapat memasukkan NULL ke dalam

  4. Mengapa CONCAT () tidak default ke charset default di MySQL?

  5. MySQL:fulltext indeks komposit + btree?