mysql权重怎么配置_mysql如何按权重查询数据啊?
樓上的回答全都會錯意了,題主意思是根據權重設定隨機幾率,例如 A 的權重為10,B 的權重為 5,這個時候隨機出現 A 的幾率要比出現 B 的幾率高。
你可以試試這個備選方案。
就是先取出權重列表再去根據權重隨機出來的那個權重值,根據權重值去庫里再隨機查。
/**
* Roll
*/
if (!function_exists('roll')) {
function roll($data, $key = 'weight')
{
$weight = 0;
$tempData = [];
foreach ($data as $one) {
$weight += $one[$key];
for ($i = 0; $i < $one[$key]; $i++) {
$tempData[] = $one;
}
}
$use = rand(0, $weight - 1);
return $tempData[$use];
}
}
$data = [['weight' => 1],
['weight' => 3],
['weight' => 5],
['weight' => 7],
['weight' => 9]];
$result = roll($data)['weight'];
SELECT * FROM database WHERE id >= (
(SELECT MAX(id) FROM database WHERE b = $result) - (SELECT MIN(id) FROM database WHERE b = $result)
) * RAND() + (SELECT MIN(id) FROM database WHERE b = $result) AND b = $result LIMIT 1
總結
以上是生活随笔為你收集整理的mysql权重怎么配置_mysql如何按权重查询数据啊?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HelpHost.exe进程查询 Hel
- 下一篇: mysql workbench 无法编辑