2008-10-02 62 views

回答

3

我认为,无论是在问题您的建议是合适的。

取决于您如何使用它,您可以通过执行INSERT IGNORE来节省时间,如果主键不存在,您可以插入新行。如果它确实存在,则错误将被忽略,因此您可以继续正常工作。

取决于您的使用情况的其他类似选项包括使用REPLACE或INSERT ON DUPLICATE KEY UPDATE类型的插入。这允许您在主键已存在的情况下更新现有条目,否则它会插入新条目。

1

做第一次并计算结果(始终为0或1)。方便快捷。

0

Select count(key) into :result from table where key = :theValue 

如果您尝试插入或更新之间作出选择,在使用Oracle的MERGE语句。我相信MS-SQL就像一个UPSERT语句。

-1

我认为使用IF EXISTS会更直观,更简单。


IF EXISTS (SELECT key FROM table WHERE key = 'value') 
    PRINT 'Found it!' 
ELSE 
    PRINT 'Cannot find it!' 
+0

如果存在不是mysql的一部分 – 2009-10-21 08:33:03

1

我会怎么做:

SELECT 1 FROM table WHERE id key = 'value' 

还有什么是可能的优化查询一点干扰,所以我与坚持。

编辑:虽然我刚刚意识到我不认为我曾经在MySQL中这样做过,但我不明白为什么它不起作用。

0

SELECT 1 FROM mytable WHERE mykey ='value'LIMIT 1

相关问题