Проверка наличия данных в базе данных

Каков правильный способ проверки наличия необходимых данных в базе данных?

То, что я использую в настоящее время,

mysql_query("SELECT anyfield FROM table WHERE field='$data'");

а затем проверьте, не затронуты ли какие-либо строки.

Но я действительно не использую извлеченные данные в anyfield . Несмотря на то, что использование ресурсов здесь так незначительно, каков правильный способ проверить, существуют ли данные в db без извлечения каких-либо других полей из таблицы?

Пусть база данных подсчитывает и извлекает данные подсчета из запроса.

 $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, которая получает $data , но это также может быть просто излишним для того, что вам нужно.