Как я могу обновить только последнюю строку моей таблицы mysql? [Дубликат]

Просто добавьте: вы также получите разные значения для своих размеров.

printf("sizeof s[] = %zu\n", sizeof(s));  //6
printf("sizeof *s  = %zu\n", sizeof(s));  //4 or 8

Как уже упоминалось выше, для массива '\0' будет выделен конечный элемент.

8
задан John Woo 30 March 2013 в 09:31
поделиться

2 ответа

Вы можете присоединиться к обоим и выполнить обновление на основе условия.

UPDATE  messages a
        INNER JOIN
        (
            SELECT  name , MAX(ReceiveTime) max_time
            FROM    messages 
            GROUP   BY name 
        ) b ON  a.name = b.name AND
                a.ReceiveTime = b.max_time
SET     a.is_unread = 1
-- WHERE    a.name = 'John'

Без условия WHERE. Он будет обновлять столбец is_unread для последней записи.

6
ответ дан John Woo 3 September 2018 в 16:06
поделиться

Вы можете попробовать использовать ORDER и LIMIT.

Попробуйте это:

UPDATE messages_tbl SET is_unread = 1
WHERE name = 'John'
ORDER BY ReceiveTime DESC
LIMIT 1

Этот запрос обновит строки в порядке самого высокого (последнего) ReceiveTime до самого низкого (самого старого) ReceiveTime. Используется совместно с LIMIT, будет изменено только последнее ReceiveTime.

30
ответ дан Aiias 3 September 2018 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: