Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 博士后不';分类不当_Python_Postgresql_Sqlalchemy - Fatal编程技术网

Python 博士后不';分类不当

Python 博士后不';分类不当,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,这是我的flask.SQLAlchemy查询: available_subservices = ( ServicesForOffer.query .filter_by(type=u'Дополнительная') .order_by(ServicesForOffer.name) .all() ) 所以我把它打印出来: for subs in available_subservices: print subs.name 我看到的是: Доп.створ

这是我的flask.SQLAlchemy查询:

available_subservices = (
    ServicesForOffer.query
    .filter_by(type=u'Дополнительная')
    .order_by(ServicesForOffer.name)
    .all()
)
所以我把它打印出来:

for subs in available_subservices:
    print subs.name
我看到的是:

Доп.створка
Окно с двойными рамами (2 створки)
Окно с двойными рамами (3 створки)
окно с балконной дверью
Эркер
Мойка окон
Мойка окон, уборка кухни, уборка ванной и сан.узла
мытье холодильника
балкон
глажка
дорога
Разбор шкафа/антресоли/гардеробной
Мелкая бытовая техника
Жалюзи вертикальные
духовка
我不希望任何人知道西里尔字母的顺序,但你仍然可以看到大写字母分散在各处,
之间并不接近。可能是Python2和Unicode的问题

另外,当我按
servicesoffer.name.desc()
排序时,同样的奇怪顺序被复制,当然是颠倒的。因此,显然有一些Postgres知道而我不知道的东西。

您可能没有正确设置字符串的排序方式:

排序规则功能允许指定每列(甚至每项操作)数据的排序顺序和字符分类行为。这减轻了创建数据库后不能更改数据库的LC_COLLATE和LC_CTYPE设置的限制

您可以通过简单地运行查询来尝试:

schema=> SELECT 'дорога' > 'духовка' COLLATE "en_US";
 ?column?
----------
 f
(1 row)
或者在PostgreSQL shell中手动执行查询,方法是:

SELECT ...
FROM ...
WHERE ...
ORDER BY name COLLATE "your collation"
如果这对您有效,您可以:


我遇到了MySQL排序的类似问题。解决办法是:

  • 将模式的
    默认字符集设置为“utf-8”(默认为拉丁语-1),并
  • 要将模式的
    DEFAULT COLLATE
    设置为“utf8\u unicode\u ci”
另一种方法是在数据库中创建正确的模式

ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ]
      [ USING expression ]