1

フィールドID、名前を持つテーブルタグがあります

フロントエンドで、ユーザーは対応する製品に関連付けられたテキストエリアにカンマで区切られたタグを入力します

そのため、挿入中に、タグテーブルにないタグをタグテーブルに追加したいと考えています。

すべて正常に動作していますが、問題は、タグテーブルにない特定のタグをテーブルに追加したいことです

例:フォームを検討してください

商品名:オレンジジュース 説明:オレンジジュースの説明。タグ: 水、ジュース、飲み物

そのため、テーブルに存在しないタグをタグ テーブルに追加したいと考えています。たとえば、水と飲み物はテーブルにあり、ジュースはそうではないので、タグ テーブルにジュースを追加するだけです。

4

5 に答える 5

3

たとえば、temptags という名前の一時テーブルを作成して、テキストエリアに入力したタグをそこに挿入し、そこに一時的にタグを挿入して、タグ テーブルにタグが存在しないことを確認した後、それらを挿入することができます。 ://sqlfiddle.com/#!2/c2855/1

CREATE TABLE tags (
  tag VARCHAR(32)
);

INSERT INTO tags VALUES
('Water'),
('Drinks');


CREATE TABLE temptags (
  tag VARCHAR(32)
);

INSERT INTO temptags VALUES
('Water'),
('drinks'),
('juices');


INSERT INTO tags SELECT tag FROM temptags WHERE UCASE(tag) NOT IN (SELECT UCASE(tag) FROM tags);
于 2013-06-05T11:41:55.177 に答える
2

列「名前」を一意にする場合は、INSERT IGNOREまたはを使用できますINSERT ... ON DUPLICATE KEY UPDATE ...

于 2013-06-05T11:27:07.500 に答える