стоит задача обновить строку в таблице базы данных с минимальной датой, количество строк предположим 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 есть? Вот там поэксперементируй. Он тебе всё расскажет, всё покажет...
Ты задаешь вопросы тривиальные, так до бесконечности по каждому пункту будем дискутировать.
Этот код ничего не перезаписывает вообще, т.к. нельзя обнавлять записи в таблице и в условии WHERE ставить выборку (подзапрос) из этой же таблицы.
Ты задаешь вопросы тривиальные, так до бесконечности по каждому пункту будем дискутировать.
UPDATE users SET com='$sch' WHERE data=(SELECT MAX(data))
Этот код ничего не перезаписывает вообще, т.к. нельзя обнавлять записи в таблице и в условии WHERE ставить выборку (подзапрос) из этой же таблицы.
Спустя 12 минут, 11 секунд (25.07.2012 - 06:46) DooMka написал(а):
Спасибо, придётся в два обращения к базе делать. Думал mysql более гибок в обращении, ведь именно от него зависит быстродействие.