我有像这样的标签的MySql表:
| id | name |
| 1 | Linux |
| 2 | Windows |
| 3 | Unix |
| 4 | Dos |
| 5 | FreeBSD |
在新闻页面中,用户添加新标签:
Linux,OpenBSD,Test
现在,Linux
之前添加了,所以我需要添加ONLY
OpenBSD和Test Into Tags Table。我的意思是:如果用户标签是新的,如何INSERT
标签?!
答案 0 :(得分:8)
UNIQUE
列上添加name
约束。使用INSERT IGNORE
以便插入已存在name
的列只会跳过该行。例如:
INSERT IGNORE INTO tags (name) VALUES ('Linux'), ('OpenBSD'), ('Test');
linux
vs Linux
],您需要确保在数据库中使用不区分大小写的合并,例如utf8_latin1_ci
[ci
代表不区分大小写]或确保在插入数据之前使用strtolower()
。答案 1 :(得分:2)
像Jay建议的那样,规范化数据,然后创建列UNIQUE
,并使用INSERT IGNORE INTO yourTags(name) VALUES(?),(?),(?)
之类的东西(并将这三个值作为参数发送)。我还假设ID列为AUTO INCREMENT
。