-4

我目前正在练习 PHP 和 MySQL,只是为了加强我的技能,因为我是编程新手,我正在尝试不同的东西 :)

我做了一个基本的网站,用户可以在其中输入一个单词,数据库会保存它,只是为了好玩。但不是重复存储同一个词,我希望 SQL 能够让我看到苹果已经存储了 3 次,而不是 [apple,apple,apple] 在我的列中。

我怎样才能让 SQL 做到这一点?我只在网上看到过 count() 函数,所以我有点困惑。

4

1 回答 1

8

您可以:

  • 只需选择插入后每个单词的计数:

    SELECT COUNT(*) FROM my_table WHERE word = 'apple'
    
  • 维护表中的计数:

    1. 添加一count列,以及UNIQUE您的 word 列上的索引:

      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 回答