MySQL创建字符串变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL创建字符串变量相关的知识,希望对你有一定的参考价值。

有没有办法为mysql变量使用字符串组合?

我知道如果这只是一串数字,这不是问题,但我可以用这种方式使用SET吗?

mysql> select @SQL_BIND_DOCS;
+-----------------------------------------------------------------------+
| @SQL_BIND_DOCS                                                       |
+-----------------------------------------------------------------------+
| '1','2','3','4','5' |
+-----------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select distinct doc from  documents doc where doc in (@SQL_BIND_DOCS);
Empty set (0.01 sec)

mysql> select distinct doc from documents doc where doc in ('1','2','3','4','5');
+---------------------------------+
| doc                             |
+---------------------------------+
| AA                              |
| BB                              |
| CC                              |
| DD                              |
| EE                              |
+---------------------------------+
5 rows in set (0.01 sec)

您可以在此处看到数据没有问题 - 任何提供的帮助都将受到赞赏。

答案

你可以使用FIND_IN_SET

select distinct doc from  documents doc where FIND_IN_SET(doc, @SQL_BIND_DOCS);

在您的情况下,使用IN不起作用,因为变量是cast to 1

参考

FIND_IN_SET() vs IN()

difference between where_in and find_in_set

Why find_in_set works but IN clause

以上是关于MySQL创建字符串变量的主要内容,如果未能解决你的问题,请参考以下文章

Vscode在使用变量之前转义斜杠

如何在导航抽屉活动模板中的片段之间传递字符串变量

在创建VSCode片段时,如何将变量转换为title-case(如TitleCase)?

VSCode创建自定义用户片段

web代码片段

MySQL系列:kafka停止命令