I have Arabic words in my database:
Example:
أحمد يحيى
احمد اسعد
问题是:
我想按名称排序获取名称。
期望的结果是:
احمد اسعد
أحمد يحيى
但我得到了:
أحمد يحيى
احمد اسعد
أ
在ا
之前
我尝试了这个
select name from emp order by name;
请帮忙。
I have Arabic words in my database:
Example:
أحمد يحيى
احمد اسعد
احمد اسعد
أحمد يحيى
أحمد يحيى
احمد اسعد
أ
在ا
之前
我尝试了这个
select name from emp order by name;
请帮忙。
请检查您的数据库排序规则,它们应该设置为utf8_general_ci或utf8_unicode_ci。这样可以让您正确执行order by等操作。
如果运行独立查询,请尝试以下操作:
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
或任何_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;