[英]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.