我有一个MySql表,用于标记如下:
| id | name |
| 1 | Linux |
| 2 | Windows |
| 3 | Unix |
| 4 | Dos |
| 5 | FreeBSD |
在新闻页面中,用户添加新标记如下:
Linux,OpenBSD,Test
现在,
Linux
已经添加,所以我需要添加ONLY
OpenBSD并测试到Tags表中。我的意思是:如果用户标签是新的,如何INSERT
标签?! 最佳答案
在UNIQUE
列上设置name
约束。
使用INSERT IGNORE
以便插入一个其中name
已经存在的列,只需跳过该行即可。如:
INSERT IGNORE INTO tags (name) VALUES ('Linux'), ('OpenBSD'), ('Test');
因为您的数据中有不同的外壳[例如:
linux
vsLinux
],您要么需要确保在数据库中使用的是不区分大小写的合并,如utf8_latin1_ci
[ci
表示不区分大小写],要么在插入数据之前确保在数据上使用strtolower()
。