如何检查 mysql 表是否为空

本文关键字:是否 mysql 何检查 检查 | 更新日期: 2023-09-27 18:35:25

如何从 C# 检查我的表是否为空?

我有这样的东西:

public MySqlConnection con;
public MySqlCommand cmd;
 con = new MySqlConnection(GetConnectionString());
 con.Open();
 cmd = new MySqlCommand("SELECT * FROM data;", con);

或者我不需要调用 SELECT 语句?

如何检查 mysql 表是否为空

您可以使用

没有WHERE关闭的COUNT(*),并查看结果是否存在确切的行数。

或者,您可以执行一个没有WHERE子句的SELECT (id) FROM tablename,如果没有返回任何行,则表为空。

我会给你一个C#的例子祝你好运

public bool checkEmptyTable(){
        try
        {
            MySql.Data.MySqlClient.MySqlCommand com = new MySql.Data.MySqlClient.MySqlCommand();
            conn = new MySql.Data.MySqlClient.MySqlConnection("YOUR CONNECTION");
            com.Connection = conn;
            com.CommandText = "SELECT COUNT(*) from data";
            int result = int.Parse(com.ExecuteScalar().ToString());
            return result == 0; // if result equals zero, then the table is empty
        }
        finally
        {
            conn.Close();
        }
   }

如果"data"可能是一个大表,你会更好地使用它(其中pkdata是你的主键字段)

SELECT COUNT(*) FROM data WHERE pkdata = (SELECT pkdata FROM data LIMIT 1);

无论您的"数据"中有 0 行还是数百万行,这都会运行得非常快。 使用没有 WHERE 的 SELECT 或 ORDER BY 意味着它只是拉动第一行可用,LIMIT 1 阻止它获得超过 1。如果你有一个程序在六个月前运行得非常快,但现在像狗一样运行,也许需要寻找一些东西!

SELECT COUNT(*) 
FROM table 
WHERE `col_name` IS NOT NULL