如有下面表格CREATE TABLE IF NOT EXISTS `php` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `a` tinyint(4) NOT NULL DEFAULT '0',
  `value` tinyint(4) NOT NULL DEFAULT '0',
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1107569 ;有如下记录:
id   a   value
1   10   0
2   15   9
3   4   50
4   55   120
5   1   100SELECT * FROM php ORDER BY rand() LIMIT 1; 我想value值越大的记录随机出现的频率就越高,有没有办法?

解决方案 »

  1.   

    SELECT * FROM php ORDER BY rand()*`value` LIMIT 1;  加上这个就行了。另外注意尽量不要用关键字或者类似的词做字段名。
      

  2.   

    非常谢谢,我想问下,如果要综合两个字段来随机查询记录,是否再 * 另外一个字段就可以了?如果想要值越小的,出现频率越高,是否用  ORDER BY ... DESC ?