兰德更新订单()限制100

时间:2016-04-25 05:48:57

标签: mysql random

我想为字段设置不同的文本 我正在尝试那种代码

SET  @rand = 100;
UPDATE myTable SET  name = 'a'  ORDER BY RAND() LIMIT @rand;
UPDATE myTable SET  name = 'b'  ORDER BY RAND() LIMIT @rand;
UPDATE myTable SET  name = 'c'  ORDER BY RAND() LIMIT @rand;

我收到错误

  

1221 - UPDATE和ORDER BY

的使用不正确

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

为什么要通过RAND()进行更新。它会减慢你的更新?按索引列(如主键)排序。这是一个性能杀手。

当您确切地知道要一次更新多少条记录时,设置@rand = 100是什么意思?

我假设您有一个名为 id

的主键
update myTable set  name = 'a'  order by id desc limit 100;
update myTable set  name = 'b'  order by id desc limit 100;
update myTable set  name = 'c'  order by id desc limit 100;

答案 1 :(得分:1)

有效!

UPDATE myTable SET  name = 'a'  ORDER BY RAND() LIMIT 100;

问题出在我复杂的INNER JOIN中。

答案 2 :(得分:0)

我假设您要使用随机值更新表格列。您只需为此执行 NSCalendar *calendar = [[FFSharedCalendar singleton] getGregorianCalendar]; NSDate *startOfDay = [calendar dateBySettingHour:0 minute:0 second:0 ofDate:[NSDate date] options:0]; NSDate *endOfDay = [calendar dateBySettingHour:23 minute:59 second:59 ofDate:[NSDate date] options:0]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"createdAt > %@ AND createdAt < %@", startOfDay, endOfDay]; NSArray* plans = [Plan MR_findAllWithPredicate:predicate]; 查询。

update

这将使用rand Value更新整个表。如果要自定义随机值,请将其分配给变量并进行组织。