Конкатенация строк не работает из-за нуля - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь добавить предыдущее значение столбца в другую строку, но я боюсь, потому что это нуль.

async def set_info_id(message_id, server_id):
    message_id = str(message_id) + '.'
    async with aiosqlite.connect('database/tickets.db') as db:
        sql = f'UPDATE servers SET info_message_id = info_message_id || {message_id} WHERE serverid = {server_id}'
        await db.execute(sql,)
        await db.commit()

Это код, который я использую. Есть ли способ работы конкатенации, когда она пуста?

1 Ответ

4 голосов
/ 01 ноября 2019

Использование COALESCE():

UPDATE servers
    SET info_message_id = COALESCE(info_message_id, '') || {message_id}
    WHERE serverid = {server_id};

Возможно, вы захотите пересмотреть свою модель данных. Отдельная таблица, для которой отдельная строка с каждой комбинацией сообщение / сервер, кажется более подходящим подходом, особенно если идентификаторы являются числами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...