我有一种情况,即用户一次输入某些单词,比如{bat,ball,tennis,car,actor,ping}。我有一个具有以下结构的数据库
------------------------------
word (PK) | count
------------------------------
ball | 4
cat | 2
gear | 1
|
我想将每个单词插入表中。如果单词已经存在,则将计数器递增1,否则插入单词(因为它是新的)并将其计数设置为1.
是否可以使用单个查询?如果是,我该怎么办?
答案 0 :(得分:0)
如果你的单词列确实是主键,你应该可以做这样的事情。
INSERT INTO table_name (`word`, `count`) VALUES("ball", 1)
ON DUPLICATE KEY UPDATE `count` = `count` + 1
非常直接利用数据库在数据库层执行更新。
答案 1 :(得分:0)
通常情况下,我避免回答链接的数量,但在这种情况下,我认为这个问题实际上只是一个两部分,之前已经在这里提出过。
您需要执行两个步骤。
你必须将你的关键词组分成一些风格的表格,最后我知道MySQL没有分裂字符串,但是如何做到这一点已被问过几次SO。请参阅Can Mysql Split a column?
然后您可以使用INSERT...ON DUPLICATE