Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql查询选择一个特定行和另一个随机行_Mysql_Random - Fatal编程技术网

mysql查询选择一个特定行和另一个随机行

mysql查询选择一个特定行和另一个随机行,mysql,random,Mysql,Random,我想显示两条记录 例如 从user_id=5的用户中选择* 现在,我希望从users表中随机选择另一行,但该行的用户id为!=五, 是否可以在单个查询中执行此操作。我尝试使用union all,但没有得到两个不同的行 谢谢你试试这个 SELECT * FROM users WHERE user_id = 5 || user_id != 5 ORDER BY RAND() LIMIT 2 这对我来说很好。第一个结果总是ID为5的记录,第二行是随机的。请注意,如果不存在ID为5的记录,则两行都是随

我想显示两条记录

例如 从user_id=5的用户中选择*

现在,我希望从users表中随机选择另一行,但该行的用户id为!=五,

是否可以在单个查询中执行此操作。我尝试使用union all,但没有得到两个不同的行

谢谢你试试这个

SELECT * FROM users WHERE user_id = 5 || user_id != 5 ORDER BY RAND() LIMIT 2

这对我来说很好。第一个结果总是ID为5的记录,第二行是随机的。请注意,如果不存在ID为5的记录,则两行都是随机的

SELECT * FROM users ORDER BY (user_id = 5) DESC, RAND() LIMIT 0,2 
工会应该这样做。你可能忘了限制

试试这个:

SELECT * FROM users WHERE user_id=5
union all (
  SELECT * FROM  users WHERE user_id!=5
  ORDER BY RAND() LIMIT 0,1)

行不通:不一定会将用户ID 5作为第一个结果Hanks pekka。我试过你的问题。它工作得很好+1.如果我有条件怎么办。我可以在那里用吗。比如说,现在从用户订单中选择*介于开始日期和结束日期描述之间,随机限制为0,2??@noobcode确定,这取决于您想做什么。通过这种方式,随机行将不会被条件覆盖。简单地输入条件是不起作用的。因此,我放置了一个子查询。这就是查询的外观。SELECT*FROM users ORDER BY user_id=从用户中选择用户_id,其中条件描述,RAND LIMIT 0,2这非常有效。谢谢。欣赏
SELECT * FROM users WHERE user_id=5
union all (
  SELECT * FROM  users WHERE user_id!=5
  ORDER BY RAND() LIMIT 0,1)