【发布时间】:2018-01-17 23:23:51
【问题描述】:
假设我有这张桌子
ID | Name | Hobby
---------------------------
1 | Alex | fishing
2 | Alex | soccer
3 | Nick | bike
4 | George | hike
ID - 是独一无二的。 Hobby - 不是唯一的(需要保持非唯一)
插入记录:
INSERT INTO my_table (ID, Name, Hobby) VALUES ('5', 'Christina', 'bike')
如果bike值在Hobby列中根本不存在,如果我需要插入记录,如何修改查询?
另一种说法:
-
VALUES ('5', 'Christina', 'bike')- 不会因为3 | Nick | bike存在而插入 -
VALUES ('5', 'Christina', 'cooking')将被插入,因为cooking根本不存在于Hobby列中。
拥有包含数千条记录的现有数据库,Hobby 中可能存在重复...
但是从现在开始..添加新记录时,如果已经存在,我想避免添加..
谢谢。
【问题讨论】:
-
where not exists (Select * from my_table B where hobby = 'bike' and A.hobby=b.hobby)。并将外部 my_table 别名为 A。 -
嗯,这就是 UNIQUE 的作用?!?!?!?!?但是您可以通过连接来模拟这种奇怪的行为
-
@xQbert: 可以用
VALUES代替 select 吗? -
@Strawberry 你能举个具体的例子吗?
-
也许吧。如果您提供了 CREATE 和 INSERT 语句 (meta.stackoverflow.com/questions/333952/…)
标签: mysql