Mysql 按组选择-按值内部排序
我想要这样的东西:Mysql 按组选择-按值内部排序,mysql,Mysql,我想要这样的东西: $st = $db->query("select * from posts where position = 'slider' order by inde asc"); SELECT p.* FROM posts p WHERE p.position IN ('slider','right','below') ORDER BY p.position DESC , p.inde ASC 加上 加上 因此,应该使用这个位
$st = $db->query("select * from posts where position = 'slider' order by inde asc");
SELECT p.*
FROM posts p
WHERE p.position IN ('slider','right','below')
ORDER
BY p.position DESC
, p.inde ASC
加上
加上
因此,应该使用这个位置顺序(右下方的滑块)选择行,但其内部的每个组都应该按inde排序
有什么帮助吗?使用按字段排序()FIELD()
返回值在给定值列表中的位置
SELECT *
FROM posts
WHERE position IN ('slider', 'right', 'below')
ORDER BY FIELD(position, 'slider', 'right', 'below'), inde
使用按字段排序()
FIELD()
返回值在给定值列表中的位置
SELECT *
FROM posts
WHERE position IN ('slider', 'right', 'below')
ORDER BY FIELD(position, 'slider', 'right', 'below'), inde
最简单的解决方案是这样的查询:
$st = $db->query("select * from posts where position = 'slider' order by inde asc");
SELECT p.*
FROM posts p
WHERE p.position IN ('slider','right','below')
ORDER
BY p.position DESC
, p.inde ASC
(我们注意到,位置
值的顺序可以基于字符串值……我们知道,'s'>'r'>'b'
如果我们需要不同顺序的值,我们可以使用表达式将位置值解码为可以按顺序排序的值。(我们可以使用几种可能的模式和各种各样的表达式。)
如果要求运行三个单独的查询(出于性能原因?),类似这样的操作也会返回指定的结果:
( SELECT p.* FROM posts p WHERE p.position = 'slider' ORDER BY p.inde )
UNION ALL
( SELECT p.* FROM posts p WHERE p.position = 'right' ORDER BY p.inde )
UNION ALL
( SELECT p.* FROM posts p WHERE p.position = 'below' ORDER BY p.inde )
(如果我们想更明确地表达对结果排序的要求,MySQL还允许我们在最后一个paren之后添加ORDER BY,对整个集合进行排序。)最简单的解决方案是这样的查询:
$st = $db->query("select * from posts where position = 'slider' order by inde asc");
SELECT p.*
FROM posts p
WHERE p.position IN ('slider','right','below')
ORDER
BY p.position DESC
, p.inde ASC
(我们注意到,位置
值的顺序可以基于字符串值……我们知道,'s'>'r'>'b'
如果我们需要不同顺序的值,我们可以使用表达式将位置值解码为可以按顺序排序的值。(我们可以使用几种可能的模式和各种各样的表达式。)
如果要求运行三个单独的查询(出于性能原因?),类似这样的操作也会返回指定的结果:
( SELECT p.* FROM posts p WHERE p.position = 'slider' ORDER BY p.inde )
UNION ALL
( SELECT p.* FROM posts p WHERE p.position = 'right' ORDER BY p.inde )
UNION ALL
( SELECT p.* FROM posts p WHERE p.position = 'below' ORDER BY p.inde )
(如果我们想更明确地表达对结果排序的要求,MySQL还允许我们在最后一个paren之后添加orderby,对整个集合进行排序。)真正易于使用的唯一缺点是,按字段排序
永远无法使用索引还有其他方法可以使用索引,但我认为它们中没有任何一种会使用索引。真正易于使用的唯一缺点是,按字段排序
永远无法使用索引有其他方法可以使用索引,但我认为它们中没有任何一种会使用索引.