MySQL создать строковую переменную - PullRequest
0 голосов
/ 11 апреля 2019

Есть ли способ использовать комбинацию строк для переменной 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)

Здесь вы видите, что с данными нет проблем - любая предоставленная помощь будет принята.

1 Ответ

1 голос
/ 14 апреля 2019

Вы можете использовать FIND_IN_SET :

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

В вашем случае использование IN не работает, поскольку переменная приведена к 1 .

Ссылки

FIND_IN_SET () против IN ()

разница между where_in и find_in_set

Почему find_in_set работает, но в предложении IN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...