Разбъркване на записите в базата

vinsbg

Registered
Здравейте,
възможно ли е по някакъв начин на таблица с да кажем около 10 000 записа да се разбъркат?

Имам предвид да се разбъркат ID-тата им на рандом. Ако едно ID е 5 да стане примерно 340 или някакво друго произволно? :(
 
Правиш нова таблица със следното query:
[sql]CREATE TABLE new_tb SELECT col_a, col_b FROM old_tb ORDER BY RAND()[/sql]
Изтриваш старата и преименуваш новата или сменяш името да таблицата в кода.
 
eLite каза:
Правиш нова таблица със следното query:
[sql]CREATE TABLE new_tb SELECT col_a, col_b FROM old_tb ORDER BY RAND()[/sql]
Изтриваш старата и преименуваш новата или сменяш името да таблицата в кода.
Новата таблица да бъде със същите полета и всичко същото, както старата, нали?

col_a - това ще ми е ID полето от старата, а col_b е ID полето от новата?
Всичко останало е огледално на старата таблица. Така го разбирам?
 
vinsbg каза:
eLite каза:
Правиш нова таблица със следното query:
[sql]CREATE TABLE new_tb SELECT col_a, col_b FROM old_tb ORDER BY RAND()[/sql]
Изтриваш старата и преименуваш новата или сменяш името да таблицата в кода.
Новата таблица да бъде със същите полета и всичко същото, както старата, нали?

col_a - това ще ми е ID полето от старата, а col_b е ID полето от новата?
Всичко останало е огледално на старата таблица. Така го разбирам?
Нещо май пропуснах, но не се сещам какво..

Не ID таблицата няма да се създаде в новата таблица...

Можеш да TRUNCATE-неш старата и после:

[sql]INSERT INTO old_tb VALUES (col_a, col_b) SELECT col_a, col_b FROM new_tb[/sql]

И накрая drop-ваш новата..
 
А col_a и col_b в случая кое са ми? Полетата от старата таблица, които ще се разбъркват в новата? Аз в случая искам само ID-тата да разбъркам.
После трънкейтвам старата и прехвърлям всичко от новата обратно?
 
Можеш ли да дадеш структурата на таблицата и името на колоната, която искаш да разбъркаш.
 
eLite каза:
Можеш ли да дадеш структурата на таблицата и името на колоната, която искаш да разбъркаш.
Да, ето я
Код:
+----------+-------------+------+-----+---------+---------------------+
| Field      | Type         | Null | Key | Default| Extra                  |
+----------+-------------+------+-----+---------+---------------------+
| id          | int(11)      | NO   | PRI | NULL   | auto_increment |
| text       | text          | NO   |       | NULL   |                           |
| date      | date         | NO   |       | NULL   |                           |
+----------+-------------+------+-----+---------+---------------------+
3 rows in set (0.17 sec)

И искам да разбъркам всички id-та.
примерно id - 5 да стане id - 434
id - 8 -> id - 4853
 
emagi каза:
Смисъла, че всички записи са в категории. Когато са вкарвани са вкарани примерно 100 записа последователно от една категория .. после 500 поредни от друга категория.

Аз искам сега да ги разбъркам... всички ID-та..
Не знам дали стана ясно този път... а и не знам точно как по друг начин може да ги извеждам. Сега ги извеждам нормално
Код:
$sql2 = mysqli_query($con, "SELECT * FROM cars ORDER BY id ASC $limit");

Не искам на всеки рефреш да са рандом...
 
Za6to kato si gi izwejdash, ne GROUPIRASH po Kategoriq

Ina4e, towa koeto iskash moje da se naprawi po sledniq na4in:
1. Prawish edna "temp" tablica, w koqto si zapiswash segashnite danni
2. Promenqwash strukturata na tablicata, kato premahwash "AUTO_INCREMENT"
3.Triesh sydzrjanieto na "REALNATA" tablica, i kopirash obratno zapisite ot TEMP tablicata w "REALNATA", kato polzwash:
[sql]INSERT INTO `Cars`.....
SELECT ... FROM temp ORDER BY RAND()[/sql]
Taka 6te imash razbyrkani ID-ta i szotwetno zapisi :)
 
Има страница на която си ги изкарвам по категории, но има и една страница, където ги изкарвам всичките.. несортирани по категории, а по ID.

Ще пробвам и твоето предложение сега! :?:
 

Back
Горе