如mysql-tuner.pl等各种分析工具所示,MySQL "join without index“计数器正在递增,在跟踪到使用RAND()选择随机产品的查询后,我想进行优化以帮助避免这种递增。
该查询如下所示:
select p.*, count(u.prodid) as count from prods p
left outer join usage u on p.prodid=u.prodid
where p.ownerid>0 and p.active=1
group by p.prodid
order by rand() limit 1;
我也尝试过使用这种风格…
我将创建下表
$sql[] = "CREATE TABLE IF NOT EXISTS #__GmQuestions(
QnID int(11) NOT NULL AUTO_INCREMENT,
Question text COLLATE utf8_unicode_ci NOT NULL,
Answer text COLLATE utf8_unicode_ci NOT NULL,
QnLevel int(11) NOT NULL,
QnPrize text COLLATE utf8_unicode_ci,
QnPoints DECIMAL( 10, 2 )
我有一个想法,但我不知道怎么做:D基本上就像在游戏中一样,例如,每6个小时你可以打开一个箱子,在那里你可以免费抓取一些物品。现在我想有一个箱子,用户可以打开每6个小时,我有在mysql服务器上写的项目,其中每个项目给用户的经验点。但是该怎么做呢?假设数据库有15个项目,现在每个项目都有自己的偶然值,例如nothing = 75% of getting it sword_1 = 15% of getting it sword_2 = 30% of getting it,你知道怎么做吗?
是否可以在mySql中使用if/then语句?我希望检查连接表中某一列的值,并根据该列的值对结果进行排序。
我很抱歉的尝试:
SELECT t1.*
FROM t1
JOIN t2 ON t1.ID = t2.ID
WHERE t1.ID = '888'
if(t2.col1 = '1') ORDER BY t1.tid ASC
else ORDER BY RAND()
我创建了一个竞赛,推荐别人的人每次推荐都会增加获胜的几率。现在我必须弄清楚如何使用mysql或php来给他们更好的机会。随机选择一行并不能将其删除。
在我的表中有两列,一列用于ID,另一列用于推荐ID。该表通过将ID添加到推荐ID字段来跟踪谁推荐了谁,因此前几行数据如下所示:
name id referralid
mark 15 20
ted 20
jim 22 20
所以“ted”应该有3次获胜的机会,因为他推荐了另外两个人。我如何在mysql或php中做到这一点?
我目前使用php中的EZSQL类来查询MySQL数据库。我正在尝试从数据库中抓取随机记录,但我想知道是否可以通过php而不是sql查询本身来随机化结果。查询目前看起来如下所示:
$results = $db->get_results("SELECT * FROM table ORDER BY RAND()");
foreach($results AS $result)
{
//code here
}
取而代之的是,我可以从数据库中获取结果,然后通过php随机化它吗?如果是这样,我该怎么做呢?
我正在学习C#,并在我的程序中创建了一个包含随机数生成器的类:
class RandomNumberGenerator
{
Random RNG = new Random();
// A bunch of methods that use random numbers are in here
}
在这个类中有几个使用RNG的方法。数据从程序的其他部分发送到这里,经过处理,然后返回。其中一种方法执行以下操作:
// Method works something like this
int Value1 = RNG.Next(x, y);
int Value2 = RNG.Next
两个MySQL函数按预期独立工作,但它们一起返回随机结果。考虑以下两个问题:
查询1
这将返回id=8显然是这样的行:
SELECT * FROM table_categories WHERE id = 8
查询2
根据我的表设置,它始终返回一个介于1到16之间的数字:
SELECT cat.id FROM table_categories cat
LEFT JOIN table_user_to_category u2c
ON u2c.cat_id = cat.id AND u2c.user_id = 0
ORDER BY IFNULL(u2c.count,0), RAND() LIMI
我想获得有例外的随机数(例如,我想要一个从500到550的数字,不包括505,512,525等)。
我在这里找到了一个类似这样的代码:
function randWithout($from, $to, array $exceptions) {
sort($exceptions); // lets us use break; in the foreach reliably
$number = rand($from, $to - count($exceptions)); // or mt_rand()
foreach ($exceptions as $exception) {
if ($n
由于Memcache无法设置密钥,我遇到了问题。基本上我有我的测试页面:
$db=new db;
$my_test_cache=$db->query("SELECT `txt` FROM `lang` WHERE `pg`='front' LIMIT 2", 10);
和一个用于缓存的db类:
class db {
public function query($query, $ttl=30, $cache=true, $compr=false) {
global $memcache;
if (
我需要一个帮助。我正在尝试使用PHP和MySQL随机获取数据,但它不是那样发生的。我在下面解释我的代码。
$day_id=$_GET['day_id'];
$sql=mysqli_query($connect,"select * from db_restaurant_basic where premium=1 and status=1 order by member_id,rand()");
if(mysqli_num_rows($sql) > 0){
while($row=mysqli_fetch_array($sql)){
我刚刚并行化了一个模拟个人行为的fortran例程,并且在使用Vector Statistical (来自数学内核库的库)生成随机数时遇到了一些问题。程序的结构如下:
program example
...
!$omp parallel do num_threads(proc) default(none) private(...) shared(...)
do i=1,n
call firstroutine(...)
enddo
!$omp end parallel do
...
end program example
subroutine firstroutine
...
call sec
我有一个通过php和html注册请求的表单。在插入新行之前,我找到了一个代码,用于使6个字符的随机字符串用于跟踪代码,并且不应该是duplicate.this代码在mySql中的users表中的触发器中。
如何在MySQL触发器中使用此代码生成6个以上字符的随机字母数字?
,在您看来,这段代码是有用的,还是比php??中的随机字符串代码更好?
你有什么建议?
BEGIN
declare ready int default 0;
declare rnd_str text;
while not ready DO set rnd_str := LOWER(lpad(conv(floor
现在,我正在使用ORDER BY Rand();从一个表中随机选择3行,正如网上所指出的那样,这种方法非常慢。我在一个只有30行的数据库上使用它,返回值需要很长时间。我找到的大多数其他解决方案只返回一行。返回多个随机行的最佳方式是什么?
$get_projects_query =
mysql_query(
"SELECT p_id FROM project_data WHERE p_featured='1' ORDER BY Rand() LIMIT 3"
) or die(mysql_error());
while($project_row
我需要一个帮助。我需要在每次调用时使用MySQL和PHP.I从表中随机取值。我在下面解释我的代码。
$subcat_id=$_GET['subcat_id'];
$quad_id=$_GET['quad_id'];
$day_id=$_GET['day_id'];
$data=array();
if(!empty($quad_id) && !empty($day_id)){
$sqlqry=mysqli_query($connect,"select * from db_restaurant_detail where sub
这可能很简单,但我已经找了几个小时的正确答案。
我正在为灵长类动物做一个视觉任务,并在MATLAB中使用PsychToolbox。我目前试图做的是随机化照片,这是被试必须决定的。有许多代码示例可以从目录中随机选择图像,但是我使用的图像已经导入,因为它们以前使用过。
作为参考,下面是我用来从我的计算机上的目录中随机导入图像的代码:
% Get the image files for the experiment
imageFolder = [cd '/ALSAMultiracial/'];
imgList = dir(fullfile(imageFolder, '*.jp
最近,我在另一篇文章的评论中讨论了同一类型的多个随机数发生器的初始化问题,并在讨论中提出了以下问题:
1)创建具有不同种子的同一随机数生成器的多个实例,并在程序的不同部分使用这些随机数生成器,这是否是一个好主意?
2)特别是,使用.Net随机类创建随机数生成器(种子如下,并在不同的程序上下文中使用每个随机数生成器)是否会造成问题:
int size = 64; // The number of RNGs to use
int seed; // Get seed using some normal technique
Random[] r = new Random[size];
我有mysql查询:
SELECT * FROM bigtable WHERE column1='1' ORDER BY column2 DESC LIMIT 10
然后我将所有内容放入一个数组中,并使用php从这个包含10个项目的数组中随机选择一行。
有没有办法用一个mysql查询来代替mysql+php部件呢?