繁体   English   中英

使用 MySQL 8 版本检查是否存在行

[英]Check if a row exists using MySQL 8 version

我在 MySQL 数据库 8.0.12 版本中有这个查询

mysql> SELECT tTbl INTO @tTbl FROM t_table WHERE tTbl = "t_contents_1_2021";

SELECT @tTbl;
Query OK, 1 row affected (0.07 sec)

+-------------------+
| @tTbl             |
+-------------------+
| t_contents_1_2021 |
+-------------------+
1 row in set (0.07 sec) 

现在我需要使用存在条件测试 MySQL 表中是否存在一行。

存在条件可以与子查询一起使用。

当表中存在行时返回true,否则返回false。 True 以 1 的形式表示, false 以 0 的形式表示。

我试过没有成功

mysql> SELECT EXISTS(SELECT tTbl INTO @tTbl FROM t_table 
                 WHERE tTbl = "t_contents_1_2021");
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT tTbl INTO @tTbl FROM t_table
                 WHERE tTbl' at line 1
mysql> 

如何解决这个问题?

SELECT.. INTO不返回行集。 EXISTS集中存在需求。 所以SELECT.. INTO不能用于EXISTS

去掉它:

SELECT EXISTS ( SELECT tTbl 
                FROM t_table 
                WHERE tTbl = "t_contents_1_2021" );

如果您需要检查行是否存在并将值保存到变量中,则使用内联分配:

SELECT EXISTS ( SELECT NULL
                FROM t_table 
                WHERE (@tTbl := tTbl) = "t_contents_1_2021" );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM