Mysql 用波兰语字母订购

Mysql 用波兰语字母订购,mysql,sql,sorting,sql-order-by,Mysql,Sql,Sorting,Sql Order By,我对订单有问题。例如,我有三个波兰语单词:Zzzz、Żubr和Zajawka 它们应该是这样的: Zajawka Zzzz Żubr 因为波兰语字母在Z之后。但对我来说: Zajawka Żubr Zzzz 因此,它将字母Ż视为Z字母…我假设数据库不是使用波兰语排序规则创建的。但您可以在排序时始终指定它: SELECT name FROM mytable ORDER BY name COLLATE SQL_Polish_Cp1250_CS_AS_KI_WI 编辑: 我误读了标签

我对订单有问题。例如,我有三个波兰语单词:Zzzz、Żubr和Zajawka

它们应该是这样的:

Zajawka
Zzzz
Żubr
因为波兰语字母在Z之后。但对我来说:

Zajawka
Żubr
Zzzz

因此,它将字母Ż视为Z字母…

我假设数据库不是使用波兰语排序规则创建的。但您可以在排序时始终指定它:

SELECT   name
FROM     mytable
ORDER BY name COLLATE SQL_Polish_Cp1250_CS_AS_KI_WI
编辑:
我误读了标签,并认为这是SQL Server。如果您有不同的RDBMS,请在评论中回答@ RAPHA的LalthaUS问题。

< P>在从数据库中获取记录后,您必须重新排序,因为它把英文字符称为“./P>”。 您需要编写自定义的重新排序方法,在该方法中,您只需在z之后对Ż进行排序

您可以获取除Ż之外的所有记录

然后在另一个查询中获取justŻ的所有记录,并将此列表附加到预获取列表的末尾

选择名称中没有Ż字符的所有记录 从client.name!=Ż和我的过滤器

从client.name==Ż的客户机和我的过滤器中选择*

CodeBehindc:

SqlDataReader dr = cmd.ExecuteReader();

           List<Product> myList = new List<Product>();

        while (dr.Read())
        {
            myList.Add(GetFromReader(dr));
        }

        if (dr.NextResult())
        {
            while (dr.Read())
            {
                myList.AddRange(GetFromReader(dr));
            }
        }

Im在MysqL和heidisql中使用相同的语法,尽管MysqL似乎不支持波兰语排序规则。看一看-也许东欧的一个会适用,但我承认我没有检查这个。有一个utf8_polish_ci字符集,但我在它是否对波兰字符排序上找到了不同的答案。。。