-3

1つのMySqlフィールドに2つの数値abを保存する必要があります。どちらも最大11文字の自然数であり、次のSQL構造で使用されます。

"SELECT FROM table WHERE field=a and foild=b"

私は次の2つの可能性について考えました:

  1. {11}、{11}の範囲でDECIMALを作成します。
  2. 23文字のVARCHARを作成し、「ab」文字列として保存します。

どちらが最良の選択肢ですか?それを速く動作させるためのより良いオプションはありますか?

速く言うとき、私はクエリでaとbを機能させるため「最も安い」方法も意味します。どちらの例も、使用する前に分割プロセスが必要です。aとbをcuriousfield.part1とcuriousfield.part2として、1つのクエリで直接これを行う方法があるどうわかりませ

ありがとう、 ( curiousfieldが素晴らしかったらすみません)

編集:

1つの列に複数の値を格納したいのはなぜですか?

次のテーブルがあるので:

int-value content [INT]

varchar-value content [VARCHAR(100)]

テキスト値 コンテンツ[TEXT]

魔法の価値の コンテンツ[????]

多くの理由で常に「content」に保存されており、「magic-value」テーブルにcontent-aフィールドとcontent-bフィールドを含めることは、私が取り組んでいる要件では適切なソリューションではありません。

4

3 に答える 3

2

ダメダメダメ!

1つの列に複数の値を格納しないでください。限目。

于 2012-12-27T12:16:19.060 に答える
0

列のデータ型がである列に2つの10進値を保存することはできません。値がコンマで区切られている列よりも、decimalデータ型がの2つの列として保存することをお勧めします。decimal

値がコンマで区切られた列よりも、2つの数値列を使用して検索する方がはるかに簡単です。

于 2012-12-27T12:18:07.090 に答える
0

自然数をDBに保存したい場合は、10進数または整数で保存してください。整数として格納する場合

  1. 検索は簡単です。
  2. SQL自体でそれらを操作または計算できます。

単一のフィールドに保存する場合、上記の利点は得られず、データベースから保存または取得するたびに分割/連結する必要があります。

于 2012-12-27T12:21:01.197 に答える