测试 MySQL 表中是否存在行的最佳方法
要测试 MySQL 表中是否存在某行,请使用exists 条件。存在条件可以与子查询一起使用。当表中存在行时返回真,否则返回假。True 以 1 的形式表示,false 以 0 的形式表示。
为了更好地理解,首先我们将在 CREATE 命令的帮助下创建一个表。以下是创建表的查询 -
mysql> CREATE table ExistsRowDemo-> (
-> ExistId int,
-> Name varchar(100)
-> );
创建表成功后,我们将在 INSERT 命令的帮助下插入一些记录。将记录插入表中的查询 -
mysql> INSERT into ExistsRowDemo values(100,'John');mysql> INSERT into ExistsRowDemo values(101,'Bob');
mysql> INSERT into ExistsRowDemo values(103,'Carol');
mysql> INSERT into ExistsRowDemo values(104,'David');
插入所有记录后,我们可以在 SELECT 命令的帮助下显示它们,如下所示 -
mysql> SELECT * from ExistsRowDemo;
以下是输出 -
+---------+-------+| ExistId | Name |
+---------+-------+
| 100 | John |
| 101 | Bob |
| 103 | Carol |
| 104 | David |
+---------+-------+
4 rows in set (0.00 sec)
我们在表中添加了一些记录。借助 EXISTS 条件检查表中是否存在行的语法如下 -
SELECT EXISTS(SELECT * FROM yourTableName WHERE yourCondition);
我正在应用上述查询来获得结果 -
Note: Firstly, I am considering the condition when row exists in the table. After that, thecondition will be mentioned when a row does not exist.
情况1
在这种情况下,我在行存在时给出一个条件。让我们应用上述语法来测试行是否存在。
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104);
以下是输出 -
+------------------------------------------------------+| EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=104)|
+------------------------------------------------------+
| 1 |
+------------------------------------------------------+
1 row in set (0.00 sec)
从上面的示例输出中,很明显该行存在,因为我们得到的值为 1。这意味着 TRUE!
案例二
在这种情况下,我正在解释当行不存在时的条件。应用上述查询。
mysql> SELECT EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105);
以下是输出 -
+------------------------------------------------------+| EXISTS(SELECT * from ExistsRowDemo WHERE ExistId=105)|
+------------------------------------------------------+
| 0 |
+------------------------------------------------------+
1 row in set (0.00 sec)
从上面的输出中,我们可以看到输出为 0 即 false(行不存在)。
以上是 测试 MySQL 表中是否存在行的最佳方法 的全部内容, 来源链接: utcz.com/z/327616.html