0

いくつかの数字のセットをファイル ID として 1 つの列だけに保存​​し、それらの後に "," を付けてそれらを分離したいと考えています。like : 8546, 5654, 2311, 7544, 6565, ....しかし、それらを取得する際に、各 ID を個別に取得したいと考えています。出来ますか?

4

5 に答える 5

0

この機能をデータベースに保持する必要がある場合は、プロシージャを使用できます。これは、文字列を分割してテーブルに挿入する例です。1回の呼び出しでそれを実行する場合は、プロシージャ内でテーブルを作成し、TEMPORARY TABLEそこから選択してプロシージャ内から結果を返し、終了する前にドロップします。

それが私のために働くために、私はコメント部分を取り除く必要がありました。

于 2012-05-24T20:14:38.190 に答える
0

データベース列(mysql)に設定されたデータを保存し、phpの爆発関数を使用して列からセットを読み取ります。ただし、そのようなデータを保存することはお勧めできません。それぞれを別の列に保存する必要があります。親テーブルへの forain キーを使用して別のテーブルを作成し、これらの ID をそのテーブルに保存できます。

于 2012-05-24T19:30:55.410 に答える
0

おそらく s を持つ別のテーブルがid必要です。MySQL のみで実行したい場合は、このテーブルとそのテーブルから SELECT id を実行できます。

于 2012-05-24T19:31:57.630 に答える
0

mysql だけの場合は、正規表現を試してください。

http://dev.mysql.com/doc/refman/5.1/en/regexp.html

あなたが何をしているのか、なぜこれをするのか理解できませんが、それは私がすることです. ある種のカウンターを使用して、現在のコンマを追跡し、カウンターの量を正規表現の前に追加します。

これは、mysql だけの場合です。php、c#、java、python、その他の言語を使用している場合は、トークン化できます。

于 2012-05-24T19:32:36.740 に答える
0

可能ですが、99% はお勧めしません。

この爆発を行うことができます、IE:

insert into table1(id) values ("1,2,3,4,6,7,8,9")

ID フィールドを数値フィールド タイプにすることはできません。おそらく、varchar が適切なオプションになる可能性があります。Mysql の場合、これらの値は数値よりもテキストになります。

しかし

あなたがそれをするなら、あなたはそれを間違っています。

  • リレーショナル データベースを作成していません。
  • インデックスが失われ、検索が遅くなります。
  • コードに依存関係を作成しています。アップグレードしたい場合は、新しいものを追加するのは簡単ではありません。

エンティティ関係モデリング、または E/R モデルをご覧ください。

于 2012-05-24T19:34:48.787 に答える