2012-01-09 8 views
2

값이 데이터베이스에 있는지 확인하는 가장 좋은 방법은 무엇입니까?값이 데이터베이스에 존재하는지 확인하십시오.

맞습니까?

+2

뜻이 '가 작동합니까?'....는 않습니다 ... (반환 값이> 1이면'name = 'John'이있는 행이 존재하고 0이면 0이됩니다. –

+1

@ mathematical.coffee는 정확하지만'LIMIT'를 사용하면 빠를 수 있습니다. 'SELECT COUNT (*)'는 첫 번째 일치가 발견되었을 때'SELECT name FROM table WHERE name = 'John'LIMIT 1'이 멈추는 동안 완전한 테이블 또는 인덱스 스캔입니다. –

+0

mysql_num_rows()를 사용하십시오. –

답변

1

하는 예는, 바로 그것을하고 있습니다. 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']; 

일치하는 행의 수를 알려줍니다. 이름 = '존'

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

이 아니오를 반환합니다 모든 레코드가있는 경우 검사에만 관심이있는 경우

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 제안 된 코드를 사용하여 주셔서 감사합니다 –

관련 문제