检查所需数据是否在数据库中的正确方法是什么?
我目前使用的是,
mysql_query("SELECT anyfield FROM table WHERE field='$data'");
然后检查是否有任何行受到影响。
但我真的对提取的数据没有任何用处anyfield
。尽管这里的资源使用量很小,但是在不从表中提取任何其他字段的情况下检查数据库中是否存在数据的正确方法是什么?
检查所需数据是否在数据库中的正确方法是什么?
我目前使用的是,
mysql_query("SELECT anyfield FROM table WHERE field='$data'");
然后检查是否有任何行受到影响。
但我真的对提取的数据没有任何用处anyfield
。尽管这里的资源使用量很小,但是在不从表中提取任何其他字段的情况下检查数据库中是否存在数据的正确方法是什么?
让数据库计数并从查询中检索计数数据。
$result = mysql_query('SELECT COUNT(*) FROM `table` WHERE `field` = ...');
if (!$result) {
die(mysql_error());
}
if (mysql_result($result, 0, 0) > 0) {
// some data matched
} else {
// no data matched
}
$result = mysql_query("SELECT `field` FROM `table` WHERE `field` = '".$data."'");
if (mysql_num_rows($result)){
// Rows exist
}
或者
$result = mysql_query("SELECT COUNT(`field`) as count FROM `table` WHERE `field` = '".$data."'");
$row = mysql_fetch_array($result);
if ($row ['count']){
// Rows exist
}
如果我正在检查数据,我会确保尽可能少地返回数据。
获取一个字段(我通常这样做id
)并确保您使用LIMIT
,例如。LIMIT 1
...假设您只想知道是否存在任何记录。
因为您正在使用 PHP 变量来查找记录,所以如果它适合您的情况,您也许可以LEFT JOIN
在得到 的第一条 SQL 行上执行 a $data
,但这对于您需要的东西来说可能很容易过分。