相关疑难解决方法(0)

MySQL:如何检索随机行或多个随机行?

我有一个MySQL数据库表,用于存储照片的URL.我需要从特定类型的数据库中提取5个随机记录.我可以像这样拉5条记录:

SELECT Photos.* 
FROM Photos 
WHERE Photos.Type_ID = 4 
LIMIT 5
Run Code Online (Sandbox Code Playgroud)

现在我需要帮助试图找出每次如何拉出不同的记录.如何从此结果集中检索随机行?

mysql

7
推荐指数
2
解决办法
2909
查看次数

如何在 SQL 中请求一个随机列?

如何在纯 SQL 中请求随机列(或尽可能接近真正随机)?

我想从表中随机选择任何一列。

我在谷歌上搜索了很多关于这个。

sql random

5
推荐指数
1
解决办法
2824
查看次数

如何使用ColdFusion在查询变量中获取特定的Row?

请使用以下查询示例:

<cfquery name="Test" Datasource = "TestDB">
    Select * from Table_Test
</cfquery>
Run Code Online (Sandbox Code Playgroud)

假设"Test"查询返回10行.我想在当前时间显示单行.

注意:我不想更改SQL语句.

coldfusion cfquery

5
推荐指数
2
解决办法
415
查看次数

MySQL从两个表中选择带有JOIN的随机行

我几天来一直在寻找这个问题的解决方案,找不到任何可以减少运行查询所需的时间.

我有2张桌子:

"product_db":  
unique_id - [index] 
image 
url_title 
status - [index]

"product_page"
id
product_unique_id - [index]
page_id - [index]
Run Code Online (Sandbox Code Playgroud)

我想要选择的是product_db中的随机图像,其中status ='Online'且产品必须在页面id = 3中

product_db有超过90,000个产品,product_page有超过150000行.

我现在使用的查询是:

SELECT image FROM product_db a,product_page b WHERE b.page_id = 3 AND a.status ='Online'AND a.unique_id = b.product_unique_id ORDER BY RAND()LIMIT 1

此查询大约需要2.3秒才能运行.这是一个很长的时间来加载网页.我尝试了一些其他查询,首先从page_id = 3返回product_page中的随机行,然后查询product_db(它确实减少了所需的时间)但问题是我无法比较产品是否在线"在线" .

php mysql

4
推荐指数
1
解决办法
3060
查看次数

在MS SQL Server 2005中使用RAND()时我做错了什么?

我正试图从一张小桌子中随机抽取10%的样本.我以为我只是使用RAND()函数并选择随机数小于0.10的那些行:

SELECT * FROM SomeTable
WHERE SomeColumn='SomeCondition' AND
      RAND() < 0.10
Run Code Online (Sandbox Code Playgroud)

但我很快发现RAND()总是返回相同的数字!让我想起这个xkcd卡通片.

没问题,RAND函数采用种子值.我将定期运行此查询,如果我在不同的日子运行它,我希望它给出不同的结果,所以我使用日期和唯一行ID的组合来播种它:

SELECT * FROM SomeTable
WHERE SomeColumn='SomeCondition' AND
      RAND(CAST(GETDATE) AS INTEGER) + RowID) < 0.10
Run Code Online (Sandbox Code Playgroud)

我还是没有得到任何结果!当我显示RAND返回的随机数时,我发现它们都在一个狭窄的范围内.从RAND获取随机数似乎需要您使用随机种子.如果我首先有一个随机种子,我就不需要随机数!

我已经看到之前有关此问题的讨论:

SQL Server随机排序
如何在SQL中请求随机行?

他们没帮我.TABLESAMPLE在页面级别工作,这适用于大表,但不适用于小表,并且看起来它适用于WHERE子句之前.TOP with NEWID不起作用,因为我不知道我想要多少行.

任何人都有解决方案,或者至少有一个提示?

编辑:感谢AlexCuse提供适用于我的特定案例的解决方案.现在更大的问题,如何使兰德表现?

sql sql-server random

3
推荐指数
1
解决办法
3517
查看次数

在SQL中选择2列的不同组合

当我在我的表上有多个连接后运行一个select时,我有一个2列的输出,我想为返回的行集选择col1和col2的不同组合.

我运行的查询将是这样的:

select a.Col1,b.Col2 from a inner join b on b.Col4=a.Col3
Run Code Online (Sandbox Code Playgroud)

现在输出有点像这样

Col1 Col2  
1   z  
2   z  
2   x  
2   y  
3   x  
3   x  
3   y  
4   a  
4   b  
5   b  
5   b  
6   c  
6   c  
6   d  
Run Code Online (Sandbox Code Playgroud)

现在我想输出应该是如下

1  z  
2  y  
3  x  
4  a  
5  b  
6  d 
Run Code Online (Sandbox Code Playgroud)

如果我随机选择第二列就可以了,因为我的查询输出就像一百万行而且我真的认为有一种情况我会让Col1和Col2输出相同,即使这是我可以编辑的值..

你可以帮我一样吗...我认为基本上col3需要是一个行号我猜,然后我需要在随机行号上选择两个cols基础..我不知道如何将它转换为SQL

考虑案例1a 1b 1c 1d 1e 2a 2b 2c 2d 2e现在group by将给出我所有这些结果,因为我想要1a和2d或1a和2b.任何这样的组合.

好吧,让我解释一下我的期望:

with rs as(
select a.Col1,b.Col2,rownumber() as rowNumber from a inner join …
Run Code Online (Sandbox Code Playgroud)

sql t-sql distinct-values

2
推荐指数
1
解决办法
8007
查看次数

选择MySQL中存在的随机行

可能重复:
如何在SQL中请求随机行?

目前使用:

$randomQuery = mysql_fetch_row(mysql_query("SELECT * FROM `table` WHERE `id` >= RAND() * (SELECT MAX(`id`) FROM `table`) LIMIT 1"));
Run Code Online (Sandbox Code Playgroud)

表结构:

id:
 2 
 4
 5
Run Code Online (Sandbox Code Playgroud)

我想确保它选择现有的行.例如,它的随机化功能不应该使用1或3.有没有办法在MySQL中这样做?

mysql

2
推荐指数
1
解决办法
1878
查看次数

生成另一个表中不存在的随机值 MySQL

我的 SQL 语法有问题。我想添加一个介于 10000 和 99999 之间的随机电话号码。到目前为止我有这个查询,但我无法在 PHPMyAdmin 中运行它:

SELECT round(RAND()*99999) AS `NUM` 
WHERE `NUM` NOT IN (SELECT `PHONE_NUMBER` FROM `PHONE`);
Run Code Online (Sandbox Code Playgroud)

这是错误:

1064 -第 1 行的“WHERE NUMNOT IN (SELECT PHONE_NUMBERFROM PHONE)”附近的语法有问题

mysql sql

2
推荐指数
1
解决办法
1320
查看次数

SQL:按列和rand()排序?

我的表有很多行,它们具有相同的列.我将这个专栏称为"喜欢".如果我使用"按喜好排序",那么具有相同"喜欢"的行将在它们被添加到数据库时被排序.我想要所有具有相同"喜欢"的行随机排序.我尝试了"ORDER BY likes,rand()",但所有内容都是随机排序的.我怎样才能做到这一点?

mysql sql sql-order-by

1
推荐指数
1
解决办法
1366
查看次数

检索随机数据

是否可以从此列表中检索2个随机数据?每当我执行T-sql代码时,它总是应该检索具有不同数据的2行.

CREATE TABLE Data
(   
    StartTime VARCHAR(5), 
    EndTime VARCHAR(5), 
)   
GO

INSERT INTO Data(StartTime,EndTime)   
SELECT '10:00','12:00' UNION ALL
SELECT '13:30','16:00' UNION ALL
SELECT '14:00','15:00' UNION ALL
GO
Run Code Online (Sandbox Code Playgroud)

// Fullmetaloby

sql sql-server-2008

1
推荐指数
1
解决办法
83
查看次数

从查询中获取10行

我有一个由连接组成的查询,输出大约有30,000多条记录.我想从这些记录中获取10个随机行,而不使用SQL命令ORDER BY rand().

我尝试循环遍历记录并将它们放入一个数组并随机播放(在洗牌后获得第10个)但它们需要大约8-12秒才能生成.我想不惜一切代价减少这个处理时间.

我将如何做到这一点?

php mysql arrays

1
推荐指数
1
解决办法
136
查看次数

slick3:选择随机行

我在 scala 上编写应用程序,并使用 slick for db 运行框架。我想从数据库端的表中选择随机行。像这样的东西:

val items = TableQuery[ItemTable]
val db = Database.forConfig("db.default")

def getRandom: Item = ???
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我当前的实现是选择全部作为列表并在 scala 代码上随机选择。

scala playframework slick

1
推荐指数
1
解决办法
561
查看次数

选择没有重复的随机记录

对于审计项目,需要为每个员工随机选择三个跟踪 ID,并且不能重复。想知道是否可以用 SQL 实现?

SQL Server 数据示例:

联系 跟踪号码
史密斯,玛丽 TRK65152
史密斯,玛丽 TRK74183
史密斯,玛丽 TRK35154
史密斯,玛丽 TRK23117
史密斯,玛丽 TRK11889
琼斯、沃尔特 TRK17364
琼斯、沃尔特 TRK91736
琼斯、沃尔特 TRK88234
琼斯、沃尔特 TRK80012
琼斯、沃尔特 TRK55874
托尼·威廉姆斯 TRK58142
托尼·威廉姆斯 TRK47336
托尼·威廉姆斯 TRK13254
托尼·威廉姆斯 TRK28596
托尼·威廉姆斯 TRK33371

sql t-sql sql-server random selection

0
推荐指数
1
解决办法
150
查看次数