Кто разбирается в sql запросах, подскажите.

silacat silacat   02.09.2013 00:04   426  
Имеется 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 запроса в природе нет? Подскажите.

Ответы на вопрос (9) Написать ответ
silacat silacat   02.09.2013 00:12
Ну и если существует, подскажите - как он выглядит, хоть примерно. Какие у кого идеи.
0
mikef mikef   02.09.2013 00:14
сильно не вникал в суть, но скажу, что рандомно можно собирать запрос с помощь php-скрипта.
0
silacat silacat   02.09.2013 00:29
Понимаю идею, но боюсь, что это долго.
Хотя наверное Вы имеете ввиду такой способ: написать скрипт, который соберёт sql запрос из базы и возможно заодно его ещё и выполнит. Тогда да, это быстро.
Надо подумать.
0
mikef mikef   02.09.2013 00:56
да, именно это и имел ввиду)
0
nazgard nazgard   02.09.2013 00:35
может проше сюда написать? http://www.sql.ru/
0
silacat silacat   02.09.2013 00:42
Спасибо за ссылку. Напишу на форум этого сайта.
0
aliiix aliiix   02.09.2013 01:32
Так?
$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']."'");}
0
Решение
silacat silacat   02.09.2013 05:20
Проверил, выдаёт ошибку синтаксиса.
Но это неважно. Я потом разберусь и найду решение и задам ещё раз вопрос на форуме sql.
А за старание написания этого sql запроса и за внимание к вопросу Ваш ответ лучший.
0
aliiix aliiix   02.09.2013 06:19
Проверил, работает:
$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'");}
0

Войдите, чтобы написать ответ
Вход Регистрация

Теперь каждый посетитель вашего сайта сможет вам позвонить! Увеличение продаж на 75% от pozvonim.com - проверено!