2012-05-15 1 views
2

Есть ли в любом случае, чтобы получить имя поля seed? Что я подразумеваю под семенем, это поле, которое было создано с чем-то подобным; INT NOT NULL AUTO_INCREMENT PRIMARY KEYКак вы получаете имя поля seed из таблицы программно?

Я планирую использовать это (про грамматически получая имя поля семени), придумывая самый быстрый SQL-запрос, чтобы получить количество записей в таблице.

Функция, которую я планирую писать, - это что-то вроде этого. Заполните пробелы и предоставите внутреннюю механику функции getSeed.

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

Если вы не пытаетесь подсчитать количество ненулевых значений в столбце (COUNT(expr) не считается NULLs), а затем просто использовать SELECT COUNT(*) и пусть MySQL использовать один и тот же индекс, который используется в WHERE, чтобы ответить COUNT(*).

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

Я не уверен, что вы имеете в виду. –

+0

счет (семя) из таблица .... что с этим не так? почему мы говорим о нулях? как бы mysql разрешить начальное значение когда-либо иметь нуль в нем, чтобы начать eith. см. мою мысль? –

+0

@AJIDEJoe, в вашем вопросе, что делает '{$ seed}' expand? Это просто имя столбца? –