SELECT * FROM `table` ORDER BY RAND() LIMIT 3 rand(),可以实现随即查询!
SELECT * FROM `table` where no in (XXXX) ORDER BY RAND() LIMIT 3
SELECT * FROM `table` where id no in (XXXX) ORDER BY RAND() LIMIT 3
我觉得在mysql里不好做,我这用php+mysql来做的。 假设两个表:员工表emploee, 客户表 customer customer中字段emploee_id用于标识该客户属于哪个员工,如果未分配给你们公司员工该字段为空。所谓分配就是给该字段赋上员工的id值 。 算法如下:第一步,查出所有未分配的客户id,按随机排序,假设存在$customers数组中 用到的mysql语句应该是这样的: SELECT id FROM `customer` WHERE emploee_id = '' ORDER BY RAND() (这条语句其实效率很低,你也可以取出所有客户id,然后用php来随机) 第二步,循环分配,每次只给拥有最少客户的员工分配: <?php foreach($customers as $customer){ mysql_query("SELECT emploee.id, COUNT(*) as cnt FROM emploee LEFT JOIN customer ON emploee.id = customer.emploee_id GROUP BY emploee.id ORDER BY cnt DESC limit 0, 1"); .... ... mysql_query("UPDATE customer SET emploee_id = $emploee_id WHERE id = {$customer['id']}" ); }
rand(),可以实现随即查询!
假设两个表:员工表emploee, 客户表 customer
customer中字段emploee_id用于标识该客户属于哪个员工,如果未分配给你们公司员工该字段为空。所谓分配就是给该字段赋上员工的id值 。
算法如下:第一步,查出所有未分配的客户id,按随机排序,假设存在$customers数组中
用到的mysql语句应该是这样的:
SELECT id FROM `customer` WHERE emploee_id = '' ORDER BY RAND()
(这条语句其实效率很低,你也可以取出所有客户id,然后用php来随机)
第二步,循环分配,每次只给拥有最少客户的员工分配:
<?php
foreach($customers as $customer){
mysql_query("SELECT emploee.id, COUNT(*) as cnt FROM emploee LEFT JOIN customer ON emploee.id = customer.emploee_id GROUP BY emploee.id ORDER BY cnt DESC limit 0, 1");
....
...
mysql_query("UPDATE customer SET emploee_id = $emploee_id WHERE id = {$customer['id']}" );
}