如何从阿拉伯字母中订购从MySQL中获取的数据?
注意:我在MySQL中使用utf8_general_ci
作为排序规则,编码很好,我只想知道如何按字母排序数据。
答案 0 :(得分:1)
为了使用php在mysql数据库中对阿拉伯语文本进行排序,你必须确保:
UTF-8 Unicode
(utf8
)utf8_general_ci
utf8_general_ci
或
utf8_unicode_ci
所以当你创建你的表时,将charset设置为utf8:
CREATE TABLE my_table (
id int(11) NOT NULL auto_increment,
name varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
如果您已经在latin1
中编码了一个表,请将其转换为:
ALTER TABLE `my_table` CONVERT TO CHARACTER SET utf8
然后,在设置数据库连接时需要在PHP中添加一行:
mysql_query ('SET NAMES \'UTF8\'');
或者:
mysql_set_charset ('UTF8'); // PHP 5.2.3 or greater.
或者,如果您正在使用PDO
,则可以将其作为第4个参数传递:
$db = new PDO ('mysql:host=localhost;dbname=tests', 'root', '',
array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
另外,请不要忘记将页面标题设置为utf8
:
header ('Content-type:text/html; charset=utf-8');
示例排序查询:
$sql = "SELECT * FROM my_table ORDER BY name" ;
希望这有帮助。