Кто разбирается в sql запросах, подскажите.
Имеется sql запрос такого вида:
UPDATE `baza1`.`citati` SET `aforizm_post_ID` = '34177563' WHERE `citati`.`aforizm_ID` ='5';
Кто разбирается, тот понимает что обозначает вышеуказанный sql запрос.
Т.е. в примари aforizm_ID со значением 5 мы меняем поле aforizm_post_ID и в это поле подставляем своё значение вида 34177563
Как Вы понимаете полей этих много вида примари aforizm_ID и aforizm_post_ID со своими значениями.
Возможно ли как-то сделать sql запрос такой, чтобы всё поле из 1000 строк aforizm_post_ID обработалось рандомно между собой проигнорируя примари aforizm_ID (т.е. чтобы поле aforizm_post_ID перемешалось между собой).
Либо другой случай: чтобы примари aforizm_ID перемешалось между собой.
В общем sql запрос такой, чтобы любое из этих полей переставилось местами игнорируя соседние структуры.
Т.е. чтобы не генерировать вручную, а взять и sql запросом всё перемешать.
Понятно объяснил?
Возможно ли сделать такой sql запрос. Или такого sql запроса в природе нет? Подскажите.
$res = mysql_query("SELECT aforizm_post_ID, aforizm_ID FROM citati");while ($res = mysql_fetch_assoc($res)) { mysql_query("UPDATE citati SET aforizm_post_ID = '".$res['aforizm_post_ID']."' WHERE aforizm_ID <> '".$res['aforizm_ID']."'");}
Но это неважно. Я потом разберусь и найду решение и задам ещё раз вопрос на форуме sql.
А за старание написания этого sql запроса и за внимание к вопросу Ваш ответ лучший.
$res = mysql_query("SELECT aforizm_post_ID, aforizm_ID FROM citati");$arr = array();while ($row = mysql_fetch_assoc($res)) { $arr[$row['aforizm_ID']] = $row['aforizm_post_ID'];}shuffle($arr);foreach ($arr as $k => $v) { mysql_query("UPDATE citati SET aforizm_post_ID = '$v' WHERE aforizm_ID = '$k'");}
Хотя наверное Вы имеете ввиду такой способ: написать скрипт, который соберёт sql запрос из базы и возможно заодно его ещё и выполнит. Тогда да, это быстро.
Надо подумать.