MySql 子查询排序问题

chenqi710 2011-06-07 11:32:22
select * from a where a.id in(select id from b where b.name='xx' order by b.createdtime desc)


请问各位大侠 上面的语句 要按照select id from b where b.name='xx' order by b.createdtime desc这个的顺序输出
该怎么写?
在网上看到用 find_in_set 具体怎么用呢 怎么把select id from b where b.name='xx' order by b.createdtime desc这个弄到find_in_set 里呢?
...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
minitoy 2011-06-08
  • 打赏
  • 举报
回复
-- 如果b.id没有重复数据.
SELECT a.* FROM a ,b WHERE a.id =b.id AND b.name='xx' ORDER BY b.createdtime DESC
wwwwb 2011-06-07
  • 打赏
  • 举报
回复
select * from a
inner join
(select id from b where b.name='xx' order by b.createdtime desc) b
on a.id=b.id
order by instr(b.id,a.id)

rucypli 2011-06-07
  • 打赏
  • 举报
回复
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中, 则返回值的范围在 1 到 N 之间 。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。 这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

-> 2
ACMAIN_CHM 2011-06-07
  • 打赏
  • 举报
回复
select * from a where a.id in(select id from b where b.name='xx' order by b.createdtime desc)
order by (select id from b where b.name='xx' and id=a.id) desc
wwwwb 2011-06-07
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧