【问题标题】:With MySQL, how do I insert into a table on condition that the value does not exist in same table?使用 MySQL,如何在同一表中不存在该值的情况下插入表中?
【发布时间】:2011-08-26 05:22:55
【问题描述】:
insert into student (FirstName,AGE,CITYID) values('guna','26','1')

select * from student WHERE FirstName!='guna';

此查询显示错误。我无法将 FirstName 列设为唯一。请给出除此之外的想法。

谢谢

【问题讨论】:

标签: mysql


【解决方案1】:
INSERT INTO student ( ....)
WHERE FirstName NOT IN (SELECT FirstName FROM student)

修改和测试后:

INSERT INTO student 
    (FirstName, age, cityid)
SELECT 
    'guna','26','1'
FROM student -- any table name will do
WHERE 'guna' NOT IN 
(
    SELECT FirstName 
    FROM student
)
LIMIT 1 -- required because all rows will qualify if 
        -- WHERE clause is satisfied

【讨论】:

【解决方案2】:

您可以在该表上添加一个唯一索引,这将为您做同样的事情

ALTER TABLE student ADD UNIQUE <name_of_index>[optional] (FirstName);

编辑:

如果你不能使用唯一索引..

我能想到的一个解决方案是使用复合语句 - http://dev.mysql.com/doc/refman/5.0/en/if-statement.html

【讨论】:

  • 我认为问题是I can't make FirstName column as unique?
  • Err.... 是我没看过还是后来添加的?无论如何.. 如果这就是需要,那么 le dorfier 有答案。
猜你喜欢
  • 2010-10-07
  • 2016-09-21
  • 2019-11-30
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 2020-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多