いくつかの数字のセットをファイル ID として 1 つの列だけに保存し、それらの後に "," を付けてそれらを分離したいと考えています。like : 8546, 5654, 2311, 7544, 6565, ....しかし、それらを取得する際に、各 ID を個別に取得したいと考えています。出来ますか?
5 に答える
この機能をデータベースに保持する必要がある場合は、プロシージャを使用できます。これは、文字列を分割してテーブルに挿入する例です。1回の呼び出しでそれを実行する場合は、プロシージャ内でテーブルを作成し、TEMPORARY TABLE
そこから選択してプロシージャ内から結果を返し、終了する前にドロップします。
それが私のために働くために、私はコメント部分を取り除く必要がありました。
データベース列(mysql)に設定されたデータを保存し、phpの爆発関数を使用して列からセットを読み取ります。ただし、そのようなデータを保存することはお勧めできません。それぞれを別の列に保存する必要があります。親テーブルへの forain キーを使用して別のテーブルを作成し、これらの ID をそのテーブルに保存できます。
おそらく s を持つ別のテーブルがid
必要です。MySQL のみで実行したい場合は、このテーブルとそのテーブルから SELECT id を実行できます。
mysql だけの場合は、正規表現を試してください。
http://dev.mysql.com/doc/refman/5.1/en/regexp.html
あなたが何をしているのか、なぜこれをするのか理解できませんが、それは私がすることです. ある種のカウンターを使用して、現在のコンマを追跡し、カウンターの量を正規表現の前に追加します。
これは、mysql だけの場合です。php、c#、java、python、その他の言語を使用している場合は、トークン化できます。
可能ですが、99% はお勧めしません。
この爆発を行うことができます、IE:
insert into table1(id) values ("1,2,3,4,6,7,8,9")
ID フィールドを数値フィールド タイプにすることはできません。おそらく、varchar が適切なオプションになる可能性があります。Mysql の場合、これらの値は数値よりもテキストになります。
しかし
あなたがそれをするなら、あなたはそれを間違っています。
- リレーショナル データベースを作成していません。
- インデックスが失われ、検索が遅くなります。
- コードに依存関係を作成しています。アップグレードしたい場合は、新しいものを追加するのは簡単ではありません。
エンティティ関係モデリング、または E/R モデルをご覧ください。