2017-11-23 14 views
1

カテゴリに割り当てられたアイテムIDとドットで区切られたサブカテゴリを持つテーブルを持つMySQLデータベースがあります(下記の挿入されたリンクを参照してください)。可能であれば、category categorycategory列を2つの列、つまり画像のようなカテゴリとサブカテゴリに分割する必要があります。それは可能ですか?パターンを使用して列を分割する

enter image description here

基本的に私は、この変換したい:この中へ

Item ID  Category.Subcategory 
2526  CategoryA.SubcategoryB 
2527  CategoryC.SubcategoryD 

、IDとそれに対応するカテゴリを保存し、サブカテゴリ

Item ID Category  Subcategory 
2526  CategoryA SubcategoryB 
2527  CategoryC SubcategoryD 

は、事前にありがとうございます!

+0

はあなたのコードを表示し、あなたはこれまでに何をしようとしたのですか? – Hokascha

+2

データをクリーンアップすることをお勧めします。あなたは文字列操作を探しているので、googleの 'MySQL文字列関数'を探しています。https://dev.mysql.com/doc/refman/5.7/en/string-functions.htmlにアクセスしてください。そこに必要な関数である 'SUBSTRING_INDEX'があります。 –

+0

ありがとう@Hokascha。私はこれまでデータベースで作業したことがありません。この瞬間、私はそれがMySQLデータベースであることを知っており、phpMyAdminの使い方を学びたいと思っています。 MySQLについては基本的に何も分かりません。申し訳ありませんが、私はそれほど試していません。私は検索していましたが、私の具体的なケースについて直接質問するほうがよいと思いました。 – eera5607

答えて

1

以下のクエリを使用:

select `Item ID`, substring_index(Category.Subcategory,'.',1) as Category, 
substring_index(Category.Subcategory,'.',-1) as Subcategory 
from YourTable; 

これは、デリミタの発生の指定された数の前に与えられた文字列から部分文字列を返すSUBSTRING_INDEX()関数を使用します。

-1は、最後の区切り文字(1区切り)

構文の右から部分がある返す:SUBSTRING_INDEX(str, delim, count)

+0

注目すべき点は、最終区切り文字が最初の区切り文字と同じになるためには、区切り文字の1つが文字列内になければなりません。 – SEoF

+0

はい、クエリで言及した区切り文字を数えます。 –

+0

ありがとうございます@ ShivYadav !!!それはちょうど最初の試みで完全に働いた。今私は私が望む2つのコラムを持っています。再度、感謝します! – eera5607

関連する問題