gpt4 book ai didi

Mysql查询随机顺序(暂停和继续)问题

转载 作者:行者123 更新时间:2023-11-29 14:52:07 26 4
gpt4 key购买 nike

好吧,我正在尝试创建一个 mysql 查询来执行以下操作:显示表中的 3 条随机记录,然后在第 3 条记录之后显示 TEXT然后显示同一个表中相同的 3 个项目,但其他字段(等于当然的项目)。

例如表格信息:

--ids | titles------

10 | one

20 | two

30 | three

以及给定示例的查询结果:

30 10 20  TEXT three one two

如果有人明白我在问什么,请发表你的建议/asnwer感谢您抽出宝贵的时间:)

最佳答案

只是为了好玩..

select t1.id, t2.id, t3.id, 'TEXT', t1.title, t2.title, t3.title
FROM
(
select @r := @r + 1 rownum, id
from (select @r:=0) initvar, (
select id
from tbl
order by rand()
limit 3
) X
) Y
join tbl t1 on Y.rownum=1 and t1.id = Y.id
join tbl t2 on Y.rownum=2 and t2.id = Y.id
join tbl t3 on Y.rownum=3 and t3.id = Y.id

您实际上应该执行下面的查询,并在您使用的任何编程环境(Java/PHP/.Net 等)中使用返回的 3 行执行任何显示处理。

select id, title
from tbl
order by rand()
limit 3


编辑

要获取 7 个不同中的数据,您可以使用以下命令。我再次强调,这是前端显示代码。我不会在生产系统中使用这样的 SQL 代码。

select display
from
(
select sorter, rownum,
case when sorter=3 then title else id end display
from
(
select @r := @r + 1 rownum, id, title
from (select @r:=0) initvar,
(
select id, title
from tbl
order by rand()
limit 3
) X
) Y, (select 1 sorter union all select 3) dup
union all
select 2, 0, 'TEXT'
) Z
order by sorter, rownum

示例输出

7
2
1
TEXT
test 7 << title for id=7
test 2
test 1

关于Mysql查询随机顺序(暂停和继续)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5519402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com