1

我已经搜索过,但我不能自己做这个

所以要完全清楚,我有 WP 数据库,其中有这样的 meta_keys:

ID ------ POST_ID -------- META_KEY ---- META_VALUE
1  ------   235  -------  book_price ---- 35$
2  ------   256  -------  book_price ---- 65$
3  ------   235  -------  tcp_book_price ---- 0
4  ------   256  -------  tcp_book_price ---- 0

我希望 tcp_book_price 的 meta_value 从 book_price 接收具有相同 post_id 的 meta_value

最终结果希望:

ID ------ POST_ID -------- META_KEY ---- META_VALUE
1  ------   235  -------  book_price ---- 35$
2  ------   256  -------  book_price ---- 65$
3  ------   235  -------  tcp_book_price ---- 35$
4  ------   256  -------  tcp_book_price ---- 65$

我试过 UPDATE FROM SELECT 但我不能让它工作..

提前致谢

好的,我自己用 PHP 脚本找到了解决方案:

<?php

$conn = mysql_connect("localhost", "root", "root");

if (!$conn) {
echo "Impossible de se connecter à la base de données : " . mysql_error();
   exit;
}

if (!mysql_select_db("database_name")) {
   echo "Impossible de sélectionner la base database_name : " . mysql_error();
   exit;
}

$sql = "SELECT `post_id`, `meta_value` FROM `wp_postmeta` WHERE `meta_key` = 'book_price'";

// query the database
$resource = mysql_query($sql);

// loop through the results
while ($result = mysql_fetch_assoc($resource)) {
    // grab the value
    $price = $result['meta_value'];   // you should use quotes here, btw
    $pid = $result['post_id'];   // you should use quotes here, btw

    echo $price;
    echo $pid;

    // make your modifications;
//    ++$nox; // or whatever

    // build the query
    $sql = "UPDATE `wp_postmeta` SET `meta_value` = '$price' WHERE `meta_key` = 'tcp_price' AND `post_id` = '$pid'";


    // run the query
    mysql_query($sql);
}

?>
4

0 回答 0