说,我在数据库中有很多书名(超过500000),有一天我想在数据库中添加另一个标题,我将如何检查数据库是否已经包含此标题?我将如何在PHP中做到这一点?MySQL:如何知道某个项目是否已经在数据库中?
0
A
回答
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
0
,或者你可以执行实际插入语句并等待结果。如果你插入的行已经在数据库中,假设你在表中定义了某种主键,它会发布一个错误...重复的条目不允许等等......你可以“捕捉”它。 .. 只是一个想法!
1
如果您确实希望标题具有唯一性,最好将其表示为标题列上的唯一约束。
0
insert ignore into
它插入如果不存在,否则没有操作。 [假设标题有独特的约束]
这个问题是别人可能会在您选择之后,在您进行“插入”之前插入该记录。最可靠的方法是“插入”并捕获“重复密钥”错误 - 假设您有一个适当的唯一或主键定义(您应该)。 – Martin 2010-03-04 05:18:26
正确,你将如何实现这将取决于用例的课程。 'INSERT IGNORE'或'INSERT ON DUPLICATE KEY UPDATE'可能是更好的解决方案。 – Wolph 2010-03-04 21:18:31