0

こんにちは友達 テーブルのセルを新しいコンテンツで更新したいのですが、コンテンツは保持しています。内部にあるデータを保持しながら、コンマまたは改行で区切られた新しいデータを追加する必要があります (関係ありません)。

|id | title | referer|
|--------------------|
| 1 | post1 | google |
| 2 | post2 | yahoo  |
| 3 | post3 | bing   |
| 4 | post4 | google |

新しいコンテンツが追加されたテーブルは次のようになります。

|id | title | referer           |
|-------------------------------|
| 1 | post1 | google,yahoo,bing |
| 2 | post2 | yahoo,bing,etc    |
| 3 | post3 | bing              |
| 4 | post4 | google,google     |

これは、データベースに新しい行を挿入するための私のコードです:

mysql_query("INSERT IGNORE INTO posts (id,title,referer) VALUES (null,'$q','$referer')");

セル「リファラー」にカンマ区切りまたは改行で情報を追加するコードは何ですか?

前もって感謝します

4

5 に答える 5

1

concat変数の配列とそれらを単一の変数に作成しmysql's CONCAT、最後のフィールドデータを保持するために関数を使用してテーブルを更新しない限り、それらをコンマで区切る方法についてはわかりません。

$referes_list = '';
foreach ($referers as $referer) {
    $referes_list .= $referer . ", ";
} 
UPDATE referers SET referer=CONCAT(referer,'$referes_list') WHERE id='$id' ;
于 2013-07-29T03:10:43.337 に答える
0

私の MySQL スキルが最高でない場合は、ご容赦ください。しかし、ここで行うことは、単純に現在の値を取得し、それにコンマと新しい値を追加して、セルを更新することです。

...それとも、あなたの質問を誤解しましたか?

于 2013-07-29T03:04:38.563 に答える
0

mysql には単純な文字列または VARCHAR である「カンマ区切り型」がないため、以前のデータを取得し、php の文字列のように連結してから更新する必要があります。

于 2013-07-29T03:07:57.717 に答える
0

次のようなものを探していると思います:

update t
    set referrer = (case when referer is null or referer = ''
                         then @newvalue
                         else concat(referer, ',', @newvalue)
                    end)
    where id = @id;
于 2013-07-29T03:08:02.100 に答える