специальные выпуски персонажей - PullRequest
0 голосов
/ 07 июня 2019

Я использую Python Eve Framework в качестве бэкэнда для получения данных из базы данных.Однако один из столбцов в одной из таблиц содержит специальные символы.Ошибка выглядела так:

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1267, "Illegal mix of collations (latin1_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'")
[SQL: SELECT count(*) AS count_1 
FROM (SELECT table._created AS 
table__created, table._updated AS 
table__updated, table._etag AS 
table__etag, table.created_at AS 
table_created_at, table.updated_at AS 
table_updated_at, table.id AS 
table_id, table.name AS 
table_name, table.instructions AS 
table_instructions, table.updated_by AS 
table_updated_by 
FROM table 
WHERE table.name LIKE %(name_1)s ORDER BY 
table.id DESC) AS anon_1]
[parameters: {'name_1': '�%'}]
(Background on this error at: http://sqlalche.me/e/2j85)

Кстати, API был примерно таким:

https://api.prod.com/table?where={%22name%22:%22like(\%22%Aa%\%22)%22}&sort=-id
  1. Первое решение, которое мы попытались, было изменить параметры сортировкистолбец в таблице.Это не сработало.
  2. Затем я запускаю скрипт, чтобы обновить все символы в ASCII для каждой строки.Таким образом, приведенный ниже код был в цикле, преобразовывающем каждую строку 'name'.

    name=""
    if(rec['name']):
       for ch in rec['name']:
           name+=chr(ord(ch))
    

Оба они не работали.

Как заставить это работать?Любая помощь приветствуется.

...