6

残念ながら、次のような値を含むフィールド列があります

  • 4
  • 12,3
  • 8,5,6,7

SELECTステートメントを記述します。その結果は次のようになります。

  • 4
  • 12
  • 8

MySQLは「分割」機能を提供しないので、実際にどのようにそれを行うことができますか?

4

2 に答える 2

24

MySQLのSUBSTRING_INDEX機能を使用します。

SELECT SUBSTRING_INDEX(field, ',', 1)

ただし、リストを区切り文字で区切られた文字列に保持することは、一般にMySQLのようなリレーショナルデータベース管理システムの非効率的な使用法です。このようなリストをペアの別個のテーブルに保持することにより、データ構造を正規化する方がよい場合がよくあります。(id, value)

于 2012-06-28T09:21:11.033 に答える
7

MySQL関数SUBSTRING_INDEX(str、delim、count)を使用できます

SELECT SUBSTRING_INDEX(value,',',1) As value FROM ...
于 2012-06-28T09:22:09.997 に答える