Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам Regexp в MySQL Replace Commands?

Както вече споменаха други, не можете да направите това в MySQL. Това обаче изглежда е еднократна операция, която трябва да направите, така че ви написах бърз и мръсен малък php скрипт, за да свършите работата. Предполага се, че вашата таблица node_revisions има колона с първичен ключ, наречена "id". Ако не, редактирайте по подходящ начин. Също така, не забравяйте да промените хоста на базата данни, потребителското име, паролата и името на базата данни в горната част на скрипта, за да съответстват на вашата конфигурация.


<?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);
?>

Имайте предвид също, че използвах модификатор без алчност за регулярните изрази, така че ако имате няколко pdf URL адреса в полето за тяло или тийзър, няма да загубите всичко между тях.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв тип колона трябва да се използва за съхраняване на сериализирани данни в mysql db?

  2. Автоматично довършване в клиента от командния ред на MySQL

  3. MySQL – Различни методи за познаване на текущия потребител

  4. Екраниране на имена на колони в PDO изрази

  5. Как да наблюдавам MySQL пространството?