我有一个MySql表,用于标记如下:

| id |   name    |
| 1  |   Linux   |
| 2  |  Windows  |
| 3  |   Unix    |
| 4  |    Dos    |
| 5  |  FreeBSD  |

在新闻页面中,用户添加新标记如下:
Linux,OpenBSD,Test

现在,Linux已经添加,所以我需要添加ONLYOpenBSD并测试到Tags表中。我的意思是:如果用户标签是新的,如何INSERT标签?!

最佳答案

UNIQUE列上设置name约束。
使用INSERT IGNORE以便插入一个其中name已经存在的列,只需跳过该行即可。如:

INSERT IGNORE INTO tags (name) VALUES ('Linux'), ('OpenBSD'), ('Test');

因为您的数据中有不同的外壳[例如:linuxvsLinux],您要么需要确保在数据库中使用的是不区分大小写的合并,如utf8_latin1_ci[ci表示不区分大小写],要么在插入数据之前确保在数据上使用strtolower()

07-28 02:59
查看更多