1

ある列の値を別の列と連結するテーブルでクエリを実行したいと思います。

次のようなもの(javascripty試行):

UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";

これをデータベースで行うことは可能ですか、それともミドルウェアで行う必要がありますか? ポインタは再び高く評価されます。

4

2 に答える 2

2

concat_wsを見てください:

# Untested, but should work
UPDATE table
SET items = CONCAT_WS(',', items, item1)
WHERE item1 != "No Data" || item1 != "";
于 2012-04-10T00:01:16.500 に答える
1

この問題に取り組む別の方法:

UPDATE table
SET items = CONCAT(items,',',item1)
WHERE item1 != "No Data" OR item1 != "";

CONCAT() と CONCAT_WS() 関数の主な違いの 1 つは (Mike が上記で説明したように)、NULL 値の処理です。詳細については、MySQL リファレンス マニュアルの文字列関数セクションを参照してください: http://dev.mysql.com/doc/refman/5.6/en/string-functions.html

「||」の使用にも問題がある可能性があります。(パイプ) 文字 (MySQL サーバーで PIPES_AS_CONCAT モードが有効になっている場合)。念のため、「OR」に変更することをお勧めします: http://dev.mysql.com/doc/refman/4.1/en/server-sql-mode.html#sqlmode_pipes_as_concat

于 2012-04-10T01:28:42.373 に答える