#mysql #collation
#mysql #сортировка
Вопрос:
Кажется, что неоправданно сложно начать работу с MySQL в отношении порядка сортировки. Я весь день читал вопросы и ответы StackOverflow по этому вопросу и многому научился, но все еще не могу заставить работать очень простой пример.
Что я хочу сделать, так это:
- Создайте базу данных, которая поддерживает символы Unicode (например
utf8mb4_unicode_ci
). - Добавьте таблицу со
VARCHAR
столбцом в ней. - Напишите хранимую процедуру, которая принимает
VARCHAR
параметр и возвращает соответствующие строки из таблицы. - Вызовите эту хранимую процедуру из (в моем случае) HeidiSQL без возврата
SQL Error (1267): Illegal mix of collations
Это та вещь, которая, я думаю, должна быть чрезвычайно простой и чрезвычайно проста в SQL Server, но на самом деле чрезвычайно сложна в MySQL.
Если кто-то, кто понимает этот материал, мог бы написать несколько простых шагов для начала работы, это было бы очень полезно.
Комментарии:
1. Вам просто нужно убедиться, что вы либо последовательно используете одну и ту же сортировку для своего поля / создания хранимой процедуры / подключения к базе данных при выполнении сохраненной процедуры, либо вам необходимо явно привязать текст к общей сортировке. Пожалуйста, сначала выполните некоторую отладку, чтобы определить, где вы получаете сообщение об ошибке: при вызове сохраненной процедуры или внутри сохраненной процедуры. Пожалуйста, также проверьте набор символов и сопоставление вашего поля и то же самое для вашего сохраненного процесса.
2. Проверьте сопоставление соединения. Проверьте сопоставление при создании Хранимой процедуры.
3. Я думаю, что в основном меня сбила с толку ошибка в MariaDB, из-за которой он кэширует параметры сортировки для базы данных, и даже если вы удаляете и воссоздаете базу данных, хранимые процедуры создаются с использованием исходной сортировки первой созданной базы данных. Теперь, когда я с этим разобрался, ситуация не так плоха, как можно предположить по моему первоначальному опыту.
4. В StackOverflow очень много вопросов и ответов о Maria DB и сопоставлении, так что это явно область, которая создает много трудностей, поэтому пошаговое руководство по началу работы все равно будет полезно.