id name
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
6 fffff
7 kkkk
8 fdsf
假如我要把name這列所有的欄位值隨機打亂怎么寫,比如id為1的name欄位值被改成id為7的kkkk。
sql陳述句怎么寫,謝謝大家,好人一生平安
uj5u.com熱心網友回復:
把name列用order by rand()匯出然后再匯入
uj5u.com熱心網友回復:
這樣不知道行不行,把現在表中的內容復制到另一個表(tab2),然后從tab2中隨機讀取一條記錄作為要更改的值(比如說可能是bbb,ccc,fff。。。都是有可能的),然后再update 你的原始表 set name=隨機讀取出來的值 where id=1uj5u.com熱心網友回復:
DROP TABLE IF EXISTS test;
CREATE TABLE test(id int primary key, name varchar(10));
insert test values
(1, 'aaa'),
(2, 'bbb'),
(3, 'ccc'),
(4, 'ddd'),
(5, 'eee'),
(6, 'fffff'),
(7, 'kkkk'),
(8, 'fdsf');
update test as data, test as ndata,
(
SELECT aa.id, bb.id as nid
FROM( SELECT id, @a:=@a+1 as a FROM(SELECT id FROM test ORDER BY rand()) d, (SELECT @a:=0) a) aa,
( SELECT id, @b:=@b+1 as b FROM test d, (SELECT @b:=0) b ORDER BY d.id ) bb
WHERE aa.a = bb.b
) nid
set data.name=ndata.name
where data.id =nid.id and nid.nid=ndata.id
;
select * from test;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/105063.html
標籤:MySQL
下一篇:Button不顯示
