batch/1.1/old/getDistinctRows.php
2013-06-19 08:24:49 +00:00

29 lines
1.1 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
$argv=$_SERVER['argv'];
if ($_SERVER['argc']<>2) die('Usage : '.basename($argv[0]). " nom_database.nom_table\nRécupère le nombre de valeurs distinctes pour chaque colonne d'une table.\n");
$param=$argv[1];
$tabParam=explode('.', $param);
$db=$tabParam[0];
$table=$tabParam[1];
$iDb=new WDB($db);
$ret=$iDb->select($table,'*', '1 LIMIT 0,1', false, MYSQL_ASSOC);
if (!$ret) die ("ERREUR : Table $table inexistante : " . mysql_error());
$tabNameRows=array_keys($ret[0]);
//print_r($tabNameRows);
foreach ($tabNameRows as $i=> $nameRow) {
//if ($i<=29) continue;
$retV=$iDb->select($table,"COUNT(*) as NbDiff, $nameRow", "1 GROUP BY $nameRow LIMIT 0,1000", true);
$retT=$iDb->select($table,"MAX(LENGTH($nameRow))", '1', true);
if (count($retV)>=1000)
echo "$db.$table, $nameRow : + de 1000 valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
else
echo "$db.$table, $nameRow : ".count($retV)." valeur(s) différente(s). Longueur maxi : ".$retT[0][0]."\n";
flush();
}
?>