mysql权重怎么配置_mysql如何按权重查询数据啊?
樓上的回答全都會(huì)錯(cuò)意了,題主意思是根據(jù)權(quán)重設(shè)定隨機(jī)幾率,例如 A 的權(quán)重為10,B 的權(quán)重為 5,這個(gè)時(shí)候隨機(jī)出現(xiàn) A 的幾率要比出現(xiàn) B 的幾率高。
你可以試試這個(gè)備選方案。
就是先取出權(quán)重列表再去根據(jù)權(quán)重隨機(jī)出來的那個(gè)權(quán)重值,根據(jù)權(quán)重值去庫(kù)里再隨機(jī)查。
/**
* 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
總結(jié)
以上是生活随笔為你收集整理的mysql权重怎么配置_mysql如何按权重查询数据啊?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HelpHost.exe进程查询 Hel
- 下一篇: 余额宝红包100万体验金三天收益是多少?