Я заметил что-то странное, определяемых пользователем переменных:Одд поведение определяемых пользователем переменных в MySQL
Допустим, у меня есть эта таблица:
num_table
+---------+
| numbers |
| 3 |
| 6 |
| 9 |
+---------+
я могу создать список разделенных запятыми и хранить его в определенной пользователем переменной следующим образом:
SELECT @var := GROUP_CONCAT `numbers` from num_table;
Что присвоит значение 3,6,9
@var
к.
И вот нечетная часть. Запуск
SELECT 3 IN (@var)
возвращает 1, но работает
SELECT 6 IN (@var)
возвращает 0.
мне кажется, он должен либо работать или не работать. Любая идея, почему она работает только с первым номером в списке?
Я бы предположил, что это отличает '3,6,9' от числа и заканчивается тем, что не учитывает ничего от первого нецифрового символа и поэтому заканчивается на 3. –