2012-01-09 2 views
2

Каков наилучший способ проверить, находится ли значение в базе данных?Проверьте, существует ли значение в базе данных

Я делаю это правильно?

+2

Если вы имеете в виду 'это работает?' .... это делает ... (если возвращаемое значение равно> 1, тогда строки с именем 'name = 'John'' существуют, а если это 0, то они не являются) –

+1

Что говорит @ Mathematical.coffee, но использование' LIMIT' может быть быстрее. «SELECT COUNT (*)» - это полное сканирование таблицы или индекса при использовании 'SELECT name FROM table WHERE name = 'John' LIMIT 1' останавливается при обнаружении первого совпадения. –

+0

use mysql_num_rows() –

ответ

1

Да вы делаете это правильно, если вы беспокоитесь только с проверкой, если есть какие-либо записи, где имя = «Джон»

SELECT COUNT(*) FROM table WHERE name = 'John' 

вернутся нет. записей, где поле имени - «Джон». если нет записей, то он вернет 0, и если есть какие-либо записи, он вернет количество записей.

Но выше запрос пропустит записи, где имя «Джон Абрахам» или «V джон», чтобы включить даже эти

вы можете изменить ваш запрос, как это.

SELECT COUNT(*) FROM table WHERE name like '%John%' 
+0

Просто и понятно. Nice;) –

1

Я бы сказал, что да.

$result = mysql_query("SELECT COUNT(*) AS 'nb' FROM table WHERE name = 'John'"); 
$line = mysql_fetch_array($result, MYSQL_ASSOC); 
$count = $line['nb']; 

Дает вам количество совпадающих строк.

2

вы можете использовать прямо вперед,

mysql_num_rows() ; 

например:

$con = mysql_connect($host,$uname,$passwd) 
mysql_select_db($dbase,$con); 
$result = mysql_query($query,$con);// query : SELECT * FROM table WHERE name='jhon'; 

if(! mysql_num_rows($result)) { 
    echo " Sorry no such value "; 
} 
1
$result = mysql_query("SELECT COUNT(*) as user FROM table WHERE name = 'John'"); 
$line = mysql_fetch_array($result, MYSQL_ASSOC); 
$count = $line['user']; 
if($count!=0) 
{ 
    echo "user exists"; 
} 
else 
{ 
    echo "There is no such user"; 
} 
+0

, но с использованием кода, который предлагается выше by @Vijeenrosh P.W, –

Смежные вопросы