2012-01-09 28 views
2

値がデータベースに存在するかどうかを確認する最適な方法は何ですか?データベースに値が存在するかどうかをチェック

正しくしていますか?

+2

あなたが意味する場合....それがない...( 'は、それが動作しますか?'返される値が1より大きい場合、 'name = 'John' 'の行が存在し、0の場合は存在しません) –

+1

@ mathematical.coffeeは正しいとは言えますが、' LIMIT'を使う方が高速かもしれません。 'SELECT COUNT(*)'は、最初の一致が見つかったときに 'SELECT name FROM table WHERE name = 'John' LIMIT 1'が停止している間の完全なテーブルまたはインデックススキャンです。 –

+0

mysql_num_rows() –

答えて

1

名= 'ジョン

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

はありませんが返されます任意のレコードがある場合にのみチェックすると懸念している場合は、[はい、あなたは、右のそれをやっています。 nameフィールドが 'John'であるレコードの数。レコードがない場合は0を返し、レコードがあればレコード数を返します。

しかし、上記のクエリは、このようなあなたのクエリを変更することができさえこれら

が含まれるように、名前は「ジョン・アブラハム」または 'Vジョンであるエントリを欠場します。

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

を使用してください。ニース;) –

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

しかし、上記の@Vijeenrosh P.Wで提案されているコードを使用していただきありがとうございます –

関連する問題