2010-03-04 93 views

回答

2

喜欢的东西SELECT 1 FROM table WHERE title = ''弹簧头脑,对标题索引ofcourse :)

从PHP:

$query = mysql_query("SELECT 1 FROM table WHERE title = '%s'", 
    mysql_real_escape_string($title)); 
$result = mysql_query($query); 
if(mysql_num_rows($result)){ 
    echo 'The title exists in the database'; 
} 
+1

这个问题是别人可能会在您选择之后,在您进行“插入”之前插入该记录。最可靠的方法是“插入”并捕获“重复密钥”错误 - 假设您有一个适当的唯一或主键定义(您应该)。 – Martin 2010-03-04 05:18:26

+0

正确,你将如何实现这将取决于用例的课程。 'INSERT IGNORE'或'INSERT ON DUPLICATE KEY UPDATE'可能是更好的解决方案。 – Wolph 2010-03-04 21:18:31

0

,或者你可以执行实际插入语句并等待结果。如果你插入的行已经在数据库中,假设你在表中定义了某种主键,它会发布一个错误...重复的条目不允许等等......你可以“捕捉”它。 .. 只是一个想法!

1

如果您确实希望标题具有唯一性,最好将其表示为标题列上的唯一约束。

0
insert ignore into 

它插入如果不存在,否则没有操作。 [假设标题有独特的约束]