我有一个单列MySQL数据库表ids (id整型主键AUTOINCREMENT),其中我按升序存储预生成的唯一id。为了从该表中获得一个随机id,我使用以下查询:
SELECT id FROM ids ORDER BY RAND() LIMIT 1;
现在,我想知道如何确保我得到的id不再被使用。我有两种选择。一个是从表中删除id,另一个是添加一个跟踪该id使用情况的列:
DELETE FROM ids WHERE id=?; //where id is the one I got from the previous query
或
SELECT id FROM ids WHERE used=
我需要用一些条件查询MYSQL,并从结果中随机得到五个不同的行。
例如,我有一个名为'user‘的表和一个名为'cash’的字段。我可以像这样编写一个SQL:
SELECT * FROM user where cash < 1000 order by RAND() LIMIT 5.
结果是好的,完全随机的,未排序的,彼此不同的,正是我想要的。
但我从谷歌得到的信息是,当表变得很大时,效率很低,因为MySQL会创建一个包含所有结果行的临时表,并为每个结果行分配一个随机的排序索引。然后对结果进行排序并返回。
然后我继续搜索,得到了一个解决方案,比如:
SELECT * FRO
我创建了两个从数据库表中获取随机值的方法。
此方法将返回一个整数随机值。
private int GetDayValue()
{
Random rnd = new Random();
List<int> days = GetDays();
int r = rnd.Next(days.Count);
return days[r];
}
此方法还将返回一个整数随机值。
private int GetPeriodValue(string grd_id)
{
Random rnd = new Random();
List<int>
我正在使用Codeigniter + MySQL + Active Record,我正在为房价建立一个带有时间段的项目。
我的mysql表中有下面的模式
Package_periods
Room_package_prices
package_id可以有许多句点,如您在示例01-08-17 to 08-08-2017、10-08-2017 to 17-08-2017等中看到的那样。
对于给定的搜索期间(例如02-08-2017 to 14-08-2017),如何找到不仅超过搜索周期而且在搜索周期之外甚至没有1天的package_id?
我的意思是,packag
我有一张有每天温度的桌子(巨大的桌子)和一张有周期开始和结束日期的桌子(小桌子)。现在我想知道每个时间段的平均温度,但是查询需要很长时间。还能改进吗?
注意:长响应时间在升级到版本5.6.19-1~exp1ubuntu2后消失,可能是由5.6.8之前的MySQL版本中的错误引起的(见Quassnoi的评论)
若要使用随机数据重新生成日期和期间表,请执行以下操作:
create table days (
day int not null auto_increment primary key,
temperature float not null);
insert into days v
我正在尝试使用SQL在BigQuery中进行计算,但我不知道如何进行。我有两张表: Tablename: Periods
id INTEGER
start_date DATE
end_date DATE 和另一张桌子 Tablename: Data
date DATE
id INTEGER
value FLOAT 我想要做的是创建一个查询,它可以将Period表中每个id的值和timerange (从start_date到end_date)相加。在这种情况下,数据表的id值可以超出Period表中的时间范
我正在寻找一种更好的方法来做到这一点:
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
我一直在阅读有关通过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
上下文:
我经常执行复杂的查询:
CREATE OR REPLACE VIEW ordered_words AS SELECT word.id
FROM category JOIN frequency ON category.id = frequency.category_id
JOIN word ON frequency.word_id = word.id
JOIN language ON word.language_id = language.id
WHERE
category.name='Subtitles' AND iso_639_1=&
如何通过随机位置在表之间移动数据?
我使用这段代码将所有数据从table xxx移动到table yyy order by id asc,这很好。
<?PHP
include("connect.php");
$sql = "INSERT INTO yyy
(name , last_name , tel_no)
SELECT
name , last_name , tel_no
FROM xxx order by id asc";
$dbQuery = mysql_query($sql);
?>
但是现在我想通过随机
我需要获取一个介于1-200之间的随机数,但同时我需要防止选择一个已经用于特定REMOTE_ADDR的随机数(存储在表中)。
这就是我到目前为止所拥有的(我尝试了几种不同的方法):
$ip = $_SERVER['REMOTE_ADDR'];
$query7 = "
SELECT *
FROM IP
WHERE IP = '$ip'
";
$result7 = mysql_query($query7) or die(mysql_error());
$rows7 = mysql_num_rows($result7);
while ($row
请注意,我是一个初学者。
我有两个问题:
1)如何对查询结果随机排序?
查询示例:
$get_questions = mysql_query("SELECT * FROM item_bank_tb WHERE item_type=1 OR item_type=3 OR item_type=4");
2)从表中随机选择行的最佳方法。假设我想从一个表中随机抓取10行。
非常感谢,
我正在尝试从我的表中选择行引用和作者,并回显它
我的目标是创建一个随机引用生成器,并显示实际的引用和作者。
我在我的表中输入了25个引号,共3行(ID,quote,author)
我的代码如下所示,我不断得到资源id #9错误
<?php
mysql_select_db(name of database);
$quotes = "SELECT author AND quote FROM inspirational_quotes ORDER BY RAND() LIMIT 1";
$result = mysql_query($quotes);
WHILE ($row
我有下面的MySQL查询,它运行良好。它从我的表中返回随机结果。
SET @prev=0,@rownum=0;
SELECT utilizador_id, nome
FROM (
SELECT *,
IF( @prev <> utilizador_id,
@rownum := 1,
@rownum := @rownum+1
) AS rank,
@prev := utilizador_id,
@rownum
FROM (
SE
如何从表中随机选择行?表非常大,从表中获取随机行的有效方法是什么?有什么建议吗?
ssh -L 3306:web.ghtorrent.org:3306 ghtorrent@web.ghtorrent.org
on the other terminal 2
mysql -u ght -h 127.0.0.1 ghtorrent
select * from commits order by rand() limit 100000;
在数据库中,表friendship有id、用户名和friendusername。当用户接受其他用户为好友时,表中将保存1行记录(而不是2行)。我想随机选择15个用户,并显示他们的图片,mysql代码:
<?php
$query120 = "SELECT frenusername FROM friendship WHERE username='{$username2}' UNION SELECT username FROM friendship WHERE friendusername='{$username2}' AND RAND()<(SE