6

我的数据库中有阿拉伯语单词:

例子:

أحمد يحيى
احمد اسعد

问题是:

我想按名称排序名称。

预期结果是:

احمد اسعد
أحمد يحيى

但我得到了:

أحمد يحيى 
احمد اسعد

أا

我试过这个

select name from emp order by name; 

请帮忙。

4

3 回答 3

1

请检查您的数据库排序规则,它们应该设置为 utf8_general_ci 或 utf8_unicode_ci。这应该可以让您正确执行 order by etc。

如果运行独立查询,请尝试以下操作:

SET NAMES 'utf8';
SET CHARACTER SET utf8;
select name from emp order by name;
于 2012-11-01T12:41:52.973 回答
1

尝试对表定义使用波斯排序规则。例子

create table emp 
(
   id int,
   name text,
   ...
)
collate utf32_persian_ci;
于 2012-11-01T12:42:23.310 回答
0

我遇到了同样的问题,我通过将类型更改为utf16_binor 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;
于 2017-07-17T22:06:49.780 回答