私のPHPアプリケーションでmysqlテーブルを更新しようとしています。これは私が把握しようとしているものです:mysqlは、フィールドにすでに値がある場合にのみデータを連結します
"my-field"にデータが含まれていない場合は、そのフィールドを特定のデータ文字列で更新したいと考えています。
"my-field"に既にデータが含まれている場合、コンマで区切られたデータをさらに連結したいと思います。
「私のフィールドは、」以下
は私が必要なものに近い感じ私が使用しているコード、ですが、それは動作しません「NOT NULL」として設定されています。UPDATE my-table SET
my-field =
IF(
LENGTH('my-field'),
CONCAT_WS(
CHAR(44 USING UTF8),
'my-field',
'if-my-field-has-length-data'
),
'if-my-field-has-NO-length-data');
以下のコードも試しました。それは実際に動作します。しかし、それは常に、このようなのような先頭にカンマを追加し終わる:
note the comma here => ,data-set-1,data-set-2
私はこのような結果を探しています:どのように誰もが知ってい
note no comma on first data set => data-set-1,data-set-2
UPDATE my-table SET
my-field =
CONCAT_WS(
CHAR(44 USING UTF8),
'my-field',
'general-data'
)
私が探していることをするには?
コンマ区切りの文字列を格納する理由はたくさんあります。フィールドのデータに基づいて照会する必要はなく、データの解析はアプリケーションの完全に別のレイヤーで行われることがあります。 –
正しいです、私はデータを照会する必要はありません。ちょうど私がPHPで後で簡単に解析できる進行中のリストを保存するためのきれいな方法を探しています。また、myfieldが空の場合は、最初にコンマを配置します。 – Austin
@Austin。 。 。これは、 'myfield'が最初は' NULL'だったときにコンマを追加しません。 –