我有一个通过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
我使用的是MySQL版本5.5.8。
假设我有这样的表、条目和结构:
entry_id int PK
member_id FK
每个成员可以有多个条目。我想随机获得10个条目,但我需要以一种允许被选中的几率随成员条目数量增加的方式来获取它们。我知道我可以这样做:
SELECT member_id
FROM entries
GROUP BY member_id
ORDER BY RAND()
LIMIT 10
但我不确定这是否能做到我想要的。MySQL是否会对记录进行分组,然后选择10?如果是这样的话,每个成员都有同样的机会被选中,这不是我想要的。我已经做了一些测试和搜索,但没有得到一个明确的
对于从50k行的数据库中选择100行随机行的查询,我遇到了问题。
首先,我只使用函数RAND(),但这变得太慢了。
现在我使用以下查询:
$query = mysql_query("SELECT t1.* FROM users AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM users WHERE picture != '' && age <= 50 && age >= 18 && username != '')) AS id) AS
我一直在阅读有关通过MYSQL和PHP获取随机行的速度问题,并想知道如何提高我的代码的速度。
我的数据库中有一个名为“banner”的表中的横幅信息,我想显示一个与页面位置相关的随机横幅,并将+1添加到该横幅的view_count中。我的方法是有效的,但是对于一个繁忙的站点,每次加载页面时都会发生这种情况,可以提高速度吗?谢谢
/* Get banners for position 1 then choose a random one to display */
$banners = mysql_query("SELECT id,title,banner_url,destinatio
据我所知,您是如何在MySQL中随机选择有序行的:
SELECT * FROM test ORDER BY RAND() ASC;
现在,这将返回一个随机排序的行集。
但如果我想两次抓取相同的随机集呢?我不能再使用RAND()了,因为每次都会发生变化。
我尝试输入RAND()生成的实际十进制数,但这似乎也不起作用。
有什么帮助吗?
我有一个相当低效的MySQL查询,直到最近随着数据库大小的增长,它一直工作得很好。我试图使用ORDER BY RAND()语法选择一个随机记录,但它非常慢(30+秒),并导致我的PHP脚本出现问题。有没有一种更有效的方式来编写这个查询?
SELECT * FROM accountcampaign, accounts WHERE
accountcampaign.status='ACTIVE'
AND accountcampaign.dateLocked IS NULL
AND accountcampaign.campaignID='1&
我有一个简单的MySQL查询如下:
SELECT * ,
( MATCH (table.get) AGAINST('playstation ' IN BOOLEAN MODE) )
+ ( table.get LIKE '%playstation%') AS _score
FROM table
JOIN users on table.id_user = users.id
WHERE table.expire_datetime > 1375997618
HAVING _score > 0
ORDER BY RAND(table.id)
现在,我正在使用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来给他们更好的机会。随机选择一行并不能将其删除。
在我的表中有两列,一列用于ID,另一列用于推荐ID。该表通过将ID添加到推荐ID字段来跟踪谁推荐了谁,因此前几行数据如下所示:
name id referralid
mark 15 20
ted 20
jim 22 20
所以“ted”应该有3次获胜的机会,因为他推荐了另外两个人。我如何在mysql或php中做到这一点?
我必须从一个表中随机挑选30条记录,除了查询耗时一秒之外,如果内容由许多用户显示,这会减慢mysql的速度。以下是查询:
SELECT relationship, COUNT(id) AS number FROM FR_user_friends GROUP BY relationship ORDER BY rand() LIMIT 30
您知道如何加快此查询的速度吗?谢谢。
如果删除rand(),查询速度会很快。我们必须找到替代rand()的方法。