2012-05-15 6 views
2

어쨌든 시드 필드 이름을 가져 오지 않습니까? 내가 씨앗을 의미하는 것은 이런 식으로 만들어진 필드입니다. INT NOT NULL AUTO_INCREMENT PRIMARY KEY프로그래밍 방식으로 테이블에서 시드 필드 이름을 어떻게 가져 옵니까?

가장 빠른 SQL 쿼리를 사용하여 테이블의 레코드 수를 얻으려면이 방법을 사용하는 것이 좋습니다 (문법적으로 시드 필드 이름 가져 오기).

필자가 작성하고자하는 기능은 다음과 같습니다. 블랭크를 채우고 getSeed 함수 내부 역학을 제공하십시오. 당신이 (널 (null)을 계산하지 않습니다 COUNT(expr)) 열에서 NULL이 아닌 값의 수를 계산하려고하지 않는 경우

function get_record_count ($dbh,$table,$where){ 

//get the seedfield name in the {table} programmatically 

$seed = getSeed($dbh,$table); 
$sql = "select count({$seed}) as `count` from {$table} " . $where; 

//do the mysql query & get num rows to return it... 


} 
+0

당신은 열 이름을 의미합니까? –

+0

해당 열에 대해 COUNT 개를 특별히 사용하는 이유는 무엇입니까? 그것은 NULL을 허용합니까 당신은 그들을 계산하고 싶지 않아? http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/ –

+0

@Moyed 예. 그것은 내가 쓴 컬럼 이름입니다. –

답변

2

, 그럼 그냥 SELECT COUNT(*)를 사용하여 MySQL의가에서 사용되는 동일한 인덱스를 사용하자 WHERE 절은 COUNT(*)입니다.

$sql = "SELECT COUNT(*) AS `count` FROM {$table} " . $where; 
+0

무슨 뜻인지 잘 모르겠습니다. –

+0

테이블의 개수 (시드) .... 무엇이 잘못 되었나요? 왜 우리는 nulls에 대해 이야기하고 있습니까? 어떻게 mysql이 시드 값이 null을 가질 수 있도록 허용 할 수 있습니까? 내 요점을 보니? –

+0

@AverageJoe, 질문에'{$ seed}'는 무엇을 확장합니까? 단순히 열 이름입니까? –