簡體   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