我的数据库中有阿拉伯语单词:
例子:
أحمد يحيى
احمد اسعد
问题是:
我想按名称排序名称。
预期结果是:
احمد اسعد
أحمد يحيى
但我得到了:
أحمد يحيى
احمد اسعد
أ
前ا
我试过这个
select name from emp order by name;
请帮忙。
我的数据库中有阿拉伯语单词:
例子:
أحمد يحيى
احمد اسعد
问题是:
我想按名称排序名称。
预期结果是:
احمد اسعد
أحمد يحيى
但我得到了:
أحمد يحيى
احمد اسعد
أ
前ا
我试过这个
select name from emp order by name;
请帮忙。
请检查您的数据库排序规则,它们应该设置为 utf8_general_ci 或 utf8_unicode_ci。这应该可以让您正确执行 order by etc。
如果运行独立查询,请尝试以下操作:
SET NAMES 'utf8';
SET CHARACTER SET utf8;
select name from emp order by name;
尝试对表定义使用波斯排序规则。例子
create table emp
(
id int,
name text,
...
)
collate utf32_persian_ci;
我遇到了同样的问题,我通过将类型更改为utf16_bin
or any来解决它_bin
。
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL,
`name` varchar(100) COLLATE utf16_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf16_bin;