我已经搜索过,但我不能自己做这个
所以要完全清楚,我有 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);
}
?>