-4

私は現在、プログラミングが初めてで、さまざまなことを試しているので、スキルを強化するためだけにPHPとMySQLを練習しています:)

ユーザーが単語を入力すると、データベースがそれを保存する基本的な Web サイトを作成しました。しかし、同じ単語を繰り返し格納する代わりに、列に [apple,apple,apple] ではなく、apple が 3 回格納されていることを SQL で確認できるようにしたいと考えています。

これを行うにはどうすればSQLを取得できますか? オンラインで count() 関数しか見たことがないので、少し混乱しています。

4

1 に答える 1

8

次のいずれかを実行できます。

  • 挿入後に各単語の数を選択するだけです。

    SELECT COUNT(*) FROM my_table WHERE word = 'apple'
    
  • テーブル内のカウントを維持します。

    1. word 列のインデックスcountと共に列を追加します。UNIQUE

      ALTER TABLE my_table
        ADD count INT UNSIGNED DEFAULT 1,
        ADD UNIQUE INDEX (word)
      
    2. を使用する代わりに、次をINSERT使用しますINSERT ... ON DUPLICATE KEY UPDATE

      INSERT INTO my_table
        (word)
      VALUES
        ('apple')
      ON DUPLICATE KEY UPDATE
        count = count + 1
      
    3. テーブルからカウントを取得します。

      SELECT count FROM my_table WHERE word = 'apple'
      
于 2013-01-16T21:43:05.767 に答える