簡體   English   中英

mysql 如果列存在則更新表(foreach)

[英]mysql update table if column exists (foreach)

我一直在玩這個:

foreach($textnode as $key => $value) {

$value = stripslashes($value);
 $value = mysql_real_escape_string($value, $con);

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
 VALUES ('$value', '$url')");



}

我一直在嘗試更新 url 已經存在的“段落”列

這似乎效果不佳,因為它只是用第一段替換段落中的每一行。 (一遍又一遍地重復)

mysql_query("UPDATE paragraphs SET paragraphs = '$value'
 WHERE url = '$url'"); 

url字段是否唯一?

如果不是,則在其上添加一個 UNIQUE 約束並使用INSERT INTO. . . ON DUPLICATE KEY UPDATE INSERT INTO. . . ON DUPLICATE KEY UPDATEINSERT INTO. . . ON DUPLICATE KEY UPDATE有這樣的東西:

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
                VALUES ('$value', '$url')
              ON DUPLICATE KEY
                UPDATE paragraphs = '$value'
             ");

或者(當url已經存在時,你想“附加”新'$value'嗎?):

 mysql_query("INSERT INTO paragraphs (paragraphs, url)
                VALUES ('$value', '$url')
              ON DUPLICATE KEY
                UPDATE paragraphs = CONCAT(paragraphs, '$value')
             ");

嘗試運行查詢

SELECT paragraphs, url
FROM   paragraphs;

看看你的桌子真正包含什么。 可能是您已將所有相同的 URL 放入表中。 這將解釋更新行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM