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

Bagaimana Cara Menggunakan Regexp di MySQL Ganti Perintah?

Seperti yang telah disebutkan orang lain, Anda tidak dapat melakukan ini di MySQL. Namun, ini tampaknya merupakan operasi satu kali yang perlu Anda lakukan, jadi saya menulis kepada Anda skrip php kecil yang cepat dan kotor untuk melakukan pekerjaan itu. Ini mengasumsikan tabel node_revisions Anda memiliki kolom kunci utama yang disebut 'id'. Jika tidak, edit dengan benar. Juga, jangan lupa untuk mengubah host database, nama pengguna, kata sandi, dan nama database di bagian atas skrip agar sesuai dengan konfigurasi Anda.


<?php
$host = '127.0.0.1';
$username = 'root';
$password = 'password';
$database = 'test';

$conn = mysql_connect($host, $username, $password);

if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
}

if (!mysql_select_db($database)) {
    echo "Unable to select " . $database . ": " . mysql_error();
    exit;
}

$sql = "SELECT * FROM node_revisions";

$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    $id = $row['id'];
    $body = $row['body'];
    $teaser = $row['teaser'];
    $body = preg_replace('/http:\/\/.*?\.pdf/', '/migration-update', $body);
    $teaser = preg_replace('/http:\/\/.*?\.pdf/', '/migration-update', $teaser);
    $sql = "UPDATE node_revisions set body='" . mysql_real_escape_string($body) . "', teaser='" . mysql_real_escape_string($teaser) . "' where id=" . $id;
    mysql_query($sql);
}

mysql_free_result($result);
mysql_close($conn);
?>

Perhatikan juga bahwa saya menggunakan pengubah non-serakah pada ekspresi reguler sehingga jika Anda memiliki beberapa url pdf di bidang badan atau penggoda, Anda tidak akan kehilangan semua yang ada di antaranya.



  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 Anda terhubung ke beberapa database MySQL pada satu halaman web?

  2. Urutkan berdasarkan urutan nilai dalam pernyataan pilih dalam klausa di mysql

  3. MySQL:bidang unik perlu menjadi indeks?

  4. Saya tidak dapat mengakses instance PDO mentah di Laravel 5

  5. Mengapa tidak menghubungkan android ke database secara langsung?