我在mysql数据库中遇到了一点问题。我有两个表,像user和post。
用户表
Post表
mysql查询
SELECT user_id,name FROM `post` where user_id IN(1,3,4); // 1,3,4 id of user from user table
上面的mysql查询工作fine.But现在我想得到每个用户的最多三条记录以上查询的randomly.Result是可以的
user_id name
1 one
3 two
1 three
1 four
1 five
我在MySQL上遇到了一个有趣的问题。当我试图用某个大整数乘以RAND()函数时,我得到了非常小的最大随机数。下面是我的MySQL查询,这应该是一个非常快速的随机查询,但是它返回IDs 36000,即使有4600000+ ID。
SET @maxID=(SELECT MAX(id) FROM property); #it's about 4600000
SELECT * FROM property
WHERE
downloaded_at IS NULL
AND id >= FLOOR(1 + RAND() * @maxID) #this returns max +/-3600
在SQL (MySQL)中是否有一种随机化限制数的方法?
我想要做的是在没有任何服务器端脚本的情况下,在插入子查询中获得一个查询中随机数量的结果。我希望能够作为假设示例运行的查询是:
SELECT id FROM users ORDER BY RAND() LIMIT RAND() * 1000
当然,这不起作用,但还有其他方法随机化极限数吗?有很多随机化有限的结果的例子,但是我在网上找不到任何关于设置随机限制的东西。
我有一个问题,重新评分的查询,这将更新从用户表的另一个随机值的收入表。当执行查询时,它什么也不做
$update = mysql_query("UPDATE earnings SET userid = (SELECT ID FROM users WHERE installid is NULL ORDER BY rand()) WHERE userid='0'");
在第二个查询中
SELECT ID FROM users WHERE installid is NULL ORDER BY rand()
它会给我一个随机的userid,其中installid为nul
我正在开发一个网站,记录是不连续的,记录是随机显示的。我使用简单的mysql随机方法来显示随机记录,方法是使用有限制的rand(),将极限参数化,一个一个地获得下一个记录。
我使用的是asp.net mvc框架和mysql数据库。
下面是mysql查询。
select distinct
lw.Lawyer_id,
lw.name,
StateName,
ct.city,
Date_of_registration,
lawyer_views,
fl.practice
from
registration lw
left join
states st ON st.Id
我已经知道如何执行随机的mysql/php查询,但是我如何跟踪已经查询过的内容,行不再被拉出。用例:包含10个问题的测验。问题需要按随机顺序排列。我如何跟踪问题(行)2、5、6、8、9已经回答,但问题1、3、4、7、10仍然存在。这是我到目前为止所知道的:
$current_test = $_SESSION['testid'];
// v v v query for this TEST
$tests = mysql_query("SELECT * FROM the_tests WHERE the_tests.testid=$current_test");
$te
我试图从MySql表中的一长串单词中获得一个随机单词:word_list [id*|wword]。
我的查询现在如下所示:
SELECT * FROM word_list w where id = (SELECT FLOOR(1 + RAND()*(10-1)))
我认为上面的查询将返回Id介于1和9之间的一个和唯一一个随机行。
令我惊讶的是,它有时会返回0、1、2或3行。这怎麽可能?
我想知道是否有可能从搜索结果中检索一个单独的随机行。我的意思是我有这样的疑问:
SELECT mp.name,mp.icon,mp.id,mp.wspx,mp.wspy,ms.icon FROM maps_points as mp JOIN maps_section as ms ON(ms.id = mp.section)
我想从这个查询生成的结果中随机获得一行。是否可以使用一个mysql查询,或者我应该只获取所有结果,然后在PHP中随机获取这一个结果?
我需要用一些条件查询MYSQL,并从结果中随机得到五个不同的行。
例如,我有一个名为'user‘的表和一个名为'cash’的字段。我可以像这样编写一个SQL:
SELECT * FROM user where cash < 1000 order by RAND() LIMIT 5.
结果是好的,完全随机的,未排序的,彼此不同的,正是我想要的。
但我从谷歌得到的信息是,当表变得很大时,效率很低,因为MySQL会创建一个包含所有结果行的临时表,并为每个结果行分配一个随机的排序索引。然后对结果进行排序并返回。
然后我继续搜索,得到了一个解决方案,比如:
SELECT * FRO
所以我有一个表,它有一个主键id和一个指向id的外键target_id。我要做的是将每个target_id设置为一个随机的id,而不是它本身。
目前,我是这样获得随机id的:
SELECT id FROM (SELECT id FROM test) AS sub ORDER BY RAND()
但是,当我尝试将随机id子查询分配给列target_id时,抛出了一个错误,指出该子查询返回了多行。
然而,当我尝试
UPDATE SET `target_id` = `id`
为了查看列是否可以直接复制,它工作了,表明这是可能的。但是为什么我的子查询的一列不能被复制到我的表的列中呢?
如果我的问题用
我有一个查询,在同一数据库中随机选择3个SQL表中的6个图像,一旦有人点击该图像,我想将他们发送到不同的页面,根据该图像是从什么表中选择的。为了通过查询来做到这一点,我想找出随机图像被选择的表名。
我的SQL查询是
$sql="SELECT *
FROM salehotel
UNION ALL
SELECT *
FROM saleland
UNION ALL
SELECT *
FROM salehouse
ORDER BY RAND()
LIMIT 6
";
$result=mysql_query($sql)or die(mysql_error());
?>
我有一个名为questions的表,其中有table.Now章的列chapter_id外键,我想从问题表中随机提出问题,没有来自不同章节的问题。
例如,我想要第二章的两个随机问题,第三章的四个随机问题,第四章的五个随机问题。
单条mysql查询是如何实现的?
我试过了,但只给出了第一个查询中的行。
(select `id`,`chapter_id`,`question_name` from question q1 where chapter_id=7 ORDER BY rand() LIMIT 3)
UNION ALL
(select `id`,`chapter_id`,`qu
我正在尝试运行一个查询,该查询返回一个随机行,以及该行周围的2行(前一行和下一行)。
我已经将随机结果值保存在一个变量中,以便所有以下查询都可以使用它。
我的查询如下:
SET @rand := (SELECT CEIL(RAND() * MAX(id)) FROM data);
(SELECT * FROM `data` where `id` < @rand AND safe = 1 ORDER BY ID DESC LIMIT 1) UNION
(SELECT * FROM `data` where `id` = @rand AND safe = 1 ORDER BY ID DE
我有一个简单的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)
我让这个查询正常工作,但它真的很慢。
我想要这个查询:1个随机的(id,word,meaning)和1个随机的不正确的任何其他单词的含义。如何在查询中获得更好的性能?
$offset_result = mysql_query("SELECT FLOOR(RAND() * COUNT(*)) AS offset FROM words WHERE APPROVAL=1 AND PERIOD<".$_SESSION['statistics']['d']." OR ( PERIOD=".$_SESSION['statisti
是否可以查询数据库行,并根据一个字段(日期时间)随机将1-3天(较好的工作日)添加到同一行中的另一个字段中?
因此,查询需要从其中获取时间的已知日期时间字段,然后随机添加1-3天:
SELECT complete_date
FROM training
WHERE tr_id = 18;
以及对需要更新的字段的查询。
UPDATE training
SET finalized = (rand + (1-3 days))
WHERE tr_id = 18
MySQL工作台软件。
我读到过在大型数据库上使用ORDER BY RAND()运行SQL查询不是一个好主意。
所以这是我破解代码的办法。代码需要从数据库中选择10个随机ids,然后执行第二次select来获取随机行。
$sql = "SELECT id FROM table WHERE image != ''
ORDER BY id DESC LIMIT 50;";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
foreach($row as $key =&
我正在计划我的饭菜:
select * from
(select floor(rand() * 3) + 1 as rand_id, days1.* from (
select 'Monday' as dy from dual
union select 'Tuesday' from dual
union select 'Wednesday' from dual
union select 'Thursday' from dual
union select 'Fri
我有一个MySQL表,其中有名字。我正试图从表中随机得到一个随机的名字列表,而不会对性能造成很大的影响。我找到了一个查询并实现了它,但有一个缺陷.假设我在数据库中有10个名字,我使用查询请求2个随机名称。我通常得到两个,但有时我只得到一个。当然,如果我要求返回9个名字,情况会变得更糟。我将得到5,然后下一次是8,然后是9,然后是2。我相信这与脚本选择一个随机id,然后从那里开始,问题是,我想要得到每次请求的名称的确切数量(除非数据库没有包含足够的名称,在这种情况下,它会返回所有的名称,但以一个随机的顺序)。
下面是我使用的查询:
SELECT Name
FROM RandomNames AS
对于从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
我正在寻找一种更好的方法来做到这一点:
SELECT * FROM $tbl_name WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM $tbl_name ) ORDER BY id LIMIT 1;
--它很慢,而且不是很随机,我每10个查询的.得到相同的结果。
这将从表中选择一个随机行,而不管其ID如何。
到目前为止我有这样的想法:
// Get amount of rows in database
$result = mysql_query("SELECT * FROM $tbl_name");
$num_rows
基本上,我想返回X个记录的数目,从过去21天,上限为10个记录。
如何将随机LIMIT添加到MySQL中的查询中?
下面是我对随机数1-10的X查询。
SELECT releases.id, COUNT(charts_extended.release_id) as cnt FROM releases
INNER JOIN charts_extended
ON charts_extended.release_id=releases.id
WHERE DATEDIFF(NOW(), releases.date) < 21
GROUP BY releases.id
ORDER BY RAND(
我读过一些MySQL的ORDER BY RAND()函数的替代方案,但大多数替代方案只适用于需要对单个随机结果进行处理的地方。
是否有人知道如何优化返回多个随机结果的查询,如:
SELECT u.id,
p.photo
FROM users u, profiles p
WHERE p.memberid = u.id
AND p.photo != ''
AND (u.ownership=1 OR u.stamp=1)
ORDER BY RAND()
LIMIT 18
我有下面的db表结构:
Tablename : agency_mst
Fields:
id
name
is_premium
date_added
我想对数据进行排序,以便is_premium=1的代理机构优先,其余的数据按date_added desc顺序排序。
但is_premium=1记录也应按随机顺序排序。因此,第一批保费代理将有随机的秩序。如何使用MySQL选择查询来做到这一点。
我已经部分构建了这个查询,但不确定如何过滤特定的数据集。以下是该查询:
SELECT * FROM agency_mst
ORDER BY is_premium DESC, date_added DESC
我有下一个mysql查询
SELECT
`i`.`id_item`,
`c`.`id_category`
FROM `items` AS `i`
LEFT JOIN `categories` AS `c` ON c.id_category = i.id_category
WHERE (i.id_page = '7')
ORDER BY `c`.`id_category` ASC, `i`.`id_item` ASC
这些项目可以属于某个类别,也可以不为其定义任何类别。我需要将items表中的结果限制为每个类别的X个随机值,或者如果没有定义任何类别,则为X个
我的任务是使用jquery幻灯片而不是动画脚本从mysql数据库中滑动图像。这张幻灯片应该至少显示最近上传的十张图片。为此,我首先编写了一个随机查询
mysql_query("select * from tblname order by rand() limit 1);
但不出所料,它会随机挑选图片,而不管它是在什么时候发布的,当然它不是最近的10张。经过一番思考之后,我现在必须首先运行一个查询来获得最近的10个
mysql_query("select * from tblname order by ID limit 10);
while($row=mysql_fetch_ar