2013-01-16 91 views
-3

我目前实行的PHP和MySQL只是为了加强我的技能,我是新来编程,我试图SQL查询来算

我做了一个基本的网站,用户可以输入不同的东西出来:)单词和数据库将保存它,只是为了好玩。但不是反复存储同一个单词,我希望SQL能够让我看到苹果已经存储了3次,而不是我的专栏中的[apple,apple,apple]。

我该如何获得SQL来做到这一点?我只看到count()函数在线,所以我有点困惑。

+0

INSERT INTO my_table (word) VALUES ('apple') ON DUPLICATE KEY UPDATE count = count + 1 
  • 从表中提取数谢谢你:)现在有一个阅读:) –

  • 回答

    8

    您可以:

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

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

      1. 添加一个count列,连同一个UNIQUE指数上的字的专栏:

        ALTER TABLE my_table 
            ADD count INT UNSIGNED DEFAULT 1, 
            ADD UNIQUE INDEX (word) 
        
      2. 而不是使用INSERT的,使用INSERT ... ON DUPLICATE KEY UPDATE

        SELECT count FROM my_table WHERE word = 'apple' 
        
    +0

    这是很好,但请介意'重音'字符作为'count'是保留字 – Peter

    +0

    @PeterSzymkowski:'COUNT'是*不*一个[保留字](http:// dev。 mysql.com/doc/en/reserved-words.html)。确实如此:“*内建函数的名称被允许作为标识符,但可能需要谨慎使用,例如,”COUNT“可作为列名称使用。*” – eggyal

    +0

    非常感谢! (单词)是否指定它将是一个单词?或者我需要输入单词来索引? –