ある列の値を別の列と連結するテーブルでクエリを実行したいと思います。
次のようなもの(javascripty試行):
UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";
これをデータベースで行うことは可能ですか、それともミドルウェアで行う必要がありますか? ポインタは再び高く評価されます。
ある列の値を別の列と連結するテーブルでクエリを実行したいと思います。
次のようなもの(javascripty試行):
UPDATE table
SET items = items+","+item1
WHERE item1 != "No Data" || item1 != "";
これをデータベースで行うことは可能ですか、それともミドルウェアで行う必要がありますか? ポインタは再び高く評価されます。
concat_wsを見てください:
# Untested, but should work
UPDATE table
SET items = CONCAT_WS(',', items, item1)
WHERE item1 != "No Data" || item1 != "";
この問題に取り組む別の方法:
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