[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: обновить строку с максимальным id
DooMka
Только сейчас начинаю понимать, что решить определённые задачи можно всего одним запросом

стоит задача обновить строку в таблице базы данных с минимальной датой, количество строк предположим 50 (будет оставатся всегда именно так, это закон)

$result3543 = mysql_query ("UPDATE users SET com='$sch' WHERE MIN(data)");


ячейка data - хранит дату оставленного сообщения

наша задача всегда перезаписывать только строку с самой старой датой, таким образом количество записей в базе не изменится

вот этот код, он правильный, то-есть будет перезаписанна строка с самой старой датой ?

MIN(data)


???

версия php 5

Раньше-бы я это решал двумя запросами: 1-й сортировал базу с поиском самой строки с минимальной датой, второй перезаписывал строку с самой минимальной датой



Спустя 41 минута, 25 секунд (25.07.2012 - 06:00) kamanch написал(а):
В условии WHERE нельзя использовать груповые функции, в том числе MIN()


Спустя 21 минута, 23 секунды (25.07.2012 - 06:22) DooMka написал(а):
MIN и MAX к сожалению можно использовать только в SELECT

$result3543 = mysql_query ("UPDATE users SET com='$sch' WHERE data=(SELECT MAX(data))");


вышеприведённый вариант перезаписывает все записи в таблице

$result3543 = mysql_query ("UPDATE users SET com='$sch' WHERE data=(SELECT MAX(data) LIMIT 1)");


тоже перезаписывает все строки... Как правильно составить код ?

Спустя 12 минут, 28 секунд (25.07.2012 - 06:34) kamanch написал(а):
У тебя phpMyAdmin есть? Вот там поэксперементируй. Он тебе всё расскажет, всё покажет...
Ты задаешь вопросы тривиальные, так до бесконечности по каждому пункту будем дискутировать.

UPDATE users SET com='$sch' WHERE data=(SELECT MAX(data))

Этот код ничего не перезаписывает вообще, т.к. нельзя обнавлять записи в таблице и в условии WHERE ставить выборку (подзапрос) из этой же таблицы.

Спустя 12 минут, 11 секунд (25.07.2012 - 06:46) DooMka написал(а):
Спасибо, придётся в два обращения к базе делать. Думал mysql более гибок в обращении, ведь именно от него зависит быстродействие.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.