如果我想返回表名,如果该表为空,您如何在 SQL 中查询?
例如?
table1 = 3 rows
table2 = 1 row
table3 = 0 row
查询将返回表名"table3",因为它有 0 行。
$con=mysqli_connect("localhost","my_user","my_password","my_db"(;
$sql="选择姓氏,年龄从人按姓氏排序";
if ($result=mysqli_query($con,$sql(( {
$rowcount=mysqli_num_rows($result(;
if($rowcount> 0( {
printf("Result set has %d rows.n",$rowcount);
} else {
echo 'Persons'; // table name
}
}
SELECT SUM(TABLE_ROWS), TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
或者,如果您使用的是MS SQL,则有一个报告可以为您提供该信息
右键单击,报告,标准报告,然后按顶级表进行磁盘使用情况,将有记录数量以及其他信息。
SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES where TABLE_ROWS = 0;
将返回包含 0 行的表。
上面的语句不会特别有用,因为它返回包括系统在内的所有数据库中的表名。
因此,对TABLE_SCHEMA
进行过滤将仅在感兴趣的数据库上获得具有 0 行的表。
决赛:SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES where TABLE_ROWS = 0 and TABLE_SCHEMA = 'databaseName';