を見ることができない、私は少し異なるフィールドとスペースないカンマを持って、Spinnyノーマンに返信しますここにはかなり多くの方法があります:http://dev.mysql.com/doc/refman/5.0/en/string-functions.htmlしかし、それらはすべてあなたが項目のインデックスにも名前をつけることを必要とします。したがって、アイテムごとに最大数のキーワードがあることがわかっている場合は、これらのいずれかを使用できます。例では、項目ごとに3つのキーワード:
insert into keywords (id, word) (
select id, replace(substring(substring_index(Keywords, ',', 1), length(substring_index(Keywords, ',', 1 - 1)) + 1), ',', '') as item1
from Pads
union all
select id, replace(substring(substring_index(Keywords, ',', 2), length(substring_index(Keywords, ',', 2 - 1)) + 1), ',', '') as item2
from Pads
union all
select id, replace(substring(substring_index(Keywords, ',', 3), length(substring_index(Keywords, ',', 3 - 1)) + 1), ',', '') as item3
from Pads
);
また、「キーワード(この場合は)最大3」を使用できるようにするにはnull値を除外することができます。
EDIT:これを1回だけ実行している場合は、ユニオンを使用する必要はありません(また、そうした場合、選択したユニオンを囲むようにする必要があります)。したがって、これを代わりに使用してください:
insert into words (padid, word)
select padid, replace(substring(substring_index(English45, ' ', 1),
length(substring_index(English45, ' ', 1 - 1)) + 1), ' ', '') as item1
from Pads
having item1 <> '';
そして、2、3などを繰り返して、挿入がなくなるまで繰り返します。
これは定期的に行う必要がありますか、一度だけ行う必要がありますか?一度しか挿入されていない場合は、行が挿入されなくなるまで手動でクエリを選択してください。 –
一度だけ、手動で? – Jules
ええと、あなたは組み込みの組合ではできません...選択してください。ただし、一度に1つのselectを使用することができます。私は編集します。 –