MySQL UPDATE со списком случайных имен - PullRequest
1 голос
/ 04 ноября 2019

Мне нужно обновить столбец в моей БД со списком случайных имен. Например, обновление 3000 строк со случайными именами, выбранными из списка 10 или менее.

Я искал, но не могу найти решение, которое решает проблему, когда это строка, для целого числа thisотлично работает:

UPDATE tableName 
SET columnName = FLOOR( 1 + RAND( ) *10 );

+--------+-------------+--------------+
| number | customer_id | product_name |
+--------+-------------+-------

таблица содержит более 10000 значений.

Мне нужно обновить столбец таблицы product_name со случайными значениями из списка из примерно 10 имен.

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Используйте ELT с RAND(), чтобы получить случайную строку

with cte as (
     select *, FLOOR(RAND()*(10-1+1))+1  as n
     from mytable)
update mytable m join cte c on c.id=m.id 
set m.mycolumn = ELT(c.n, 'Roger','Steve','Hulk','Jill','Thor','John','Arun','Mike','Bella','Mark') -- keep your 10names here

DEMO ON DBFIDDLE

0 голосов
/ 04 ноября 2019

Просто попробуйте этот код

UPDATE tableName
SET columnName =LEFT(UUID(),8);

ВЛЕВО (UUID (), 8) приведет к чему-то вроде 1a4328bb, всегда случайное слово

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...