相关疑难解决方法(0)

按IN值列表排序

我在PostgreSQL 8.3中有一个简单的SQL查询,可以获取一堆注释.我在子句中为构造提供了一个值的排序列表:INWHERE

SELECT * FROM comments WHERE (comments.id IN (1,3,2,4));
Run Code Online (Sandbox Code Playgroud)

这将以任意顺序返回注释,在我碰巧是ids之类的1,2,3,4.

我希望结果行像IN构造中的列表一样排序:(1,3,2,4).
怎么实现呢?

sql postgresql sql-order-by sql-in

146
推荐指数
7
解决办法
9万
查看次数

按mysql中select语句"in"子句中的值顺序排序

我正在从具有整数id值的大表(数百万行)中选择一组帐户记录.从某种意义上说,作为一个人获得的查询的基础.我正在做什么构建一个大的逗号分隔列表,并将其作为"in"子句传递给查询.现在结果是完全无序的.我想要做的是按照"in"子句中的值的顺序返回结果.

我假设我将不得不构建一个临时表并进行连接,我想避免,但可能无法做到.

思考?现在查询的大小限制在每个约60k,因为我们试图限制输出大小,但它可能是任意大的,这可能排除了从实际角度来看的"in"查询,如果不是物理的.

提前致谢.

mysql select

29
推荐指数
2
解决办法
2万
查看次数

具有特定ID的magento产品集合

我选择产品

$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('entity_id', array('in' => $productIds)); 
Run Code Online (Sandbox Code Playgroud)

我怎么能认为该集合与$ productIds中的ID的顺序相同?

谢谢

magento

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

MySQL'IN'子句和返回的记录集顺序

例如:从T中选择*,其中T.id IN(4,78,12,45)

我希望返回的记录集按"IN"子句中的位置排序.我怎样才能做到这一点?

mysql sql

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

基于WHERE IN子句数据排序结果集

考虑这个MySQL查询:

SELECT
  someColumns
FROM
  someTable
WHERE
  someColumn IN ( value1, value2, value3 )
Run Code Online (Sandbox Code Playgroud)

...我怎样才能保证行集按照赋予该IN ()子句的值的确切顺序排序?我认为如果不给它一个ORDER BY条款就不能保证,是吗?

PS.:子句
的值IN ()将是一个由PHP传递给查询的任意数据数组(利用Zend Framework的select语句),方式如下:

->where( 'someColumn in (?)', $theArrayWithValues );
Run Code Online (Sandbox Code Playgroud)

mysql sql database sql-order-by

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

SQL按查询中指定的顺序排序

假设我有一个查询"select*from where where where in(0,2,5,1,3)",我实际上希望以相同的顺序返回它们指定where子句的行.ID的顺序将从查询更改为查询,并且订单没有模式.

我知道可以改变数据模型,创建临时表等.但请相信我,这些类型的解决方案在我的情况下不起作用.我也无法改变应用程序代码中结果对象的顺序.

我也知道不同的数据库引擎对事物的排序方式不同,在某些情况下无法保证等等等等.我只想不,这可能吗?

如果有帮助我将使用mysql或sql server :)

mysql sql sql-server sorting

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