0

私の質問は、mySQL: でこの機能を実行する方法はありますか $str = implode(',',array_unique(explode(',', $str)));? ループでテーブルの更新を行っているため、列に文字列が既に存在するかどうかを確認する必要があります。何かのようなもの

Item | Numbers
A    | 1,2,4
B    | 6,7,8
C    | 2,7,5

したがって、行 B に追加する必要があるエントリ (たとえば 7,8,30) が入った場合、文字列に 30 だけ追加する必要があります。そうB | 6,7,8,30。最初に行を選択してPHPで実行することを知っています.mySQLで直接実行する方法を探しています.

注 : 残念ながら、テーブル構造を変更することはできません。(編集済み)

ありがとう

4

2 に答える 2

0

これは次のように実行できます。

update t
    set Numbers = (case when Numbers = '' then '30'
                        else concat(Numbers, ',', 30)
                   end)
    where item = 'B';

ただし、データ構造は、達成したいことにはあまり適していません。と呼ばれるテーブルが必要です。このテーブルにはItemNumbers、各行にアイテムと番号が含まれます。

于 2013-05-28T02:05:45.603 に答える