首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要根据数组中数据的确切序列来提取数据。

问我需要根据数组中数据的确切序列来提取数据。
EN

Stack Overflow用户
提问于 2016-02-28 03:39:49
回答 1查看 101关注 0票数 2

下面是我的代码,我想要根据序列3,10,然后7来提取数据,我怎么做呢?到目前为止,它得到了前10,然后7,然后3。

代码语言:javascript
复制
<code>
        $cars = $this->car->find('all', array(
        'conditions' => array(
            'car.id' => array(3, 10, 7)
        ),
        'limit' => 3, 
        'order' => array('car.id' => 'desc')
    ));

    </code>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-28 04:24:30

其思想是根据它们在数组中各自的位置对结果进行排序。在这种情况下,MySQL FIND_IN_SET函数可以帮助您。

您可以通过语句添加以下命令:

代码语言:javascript
复制
ORDER BY FIND_IN_SET(car.id,'3,10,7')

注释:,您需要在等价的cake php mysql查询中通过语句转换这个顺序。

如果字符串在字符串列表中存在(作为子字符串),则MySQL FIND_IN_SET()返回字符串的位置。字符串列表本身是一个字符串,包含由‘,’(逗号)字符分隔的子字符串。 当字符串列表中不存在搜索字符串时,此函数返回0,如果其中任一参数为空,则返回NULL。

设置

示例输入:

查询:

代码语言:javascript
复制
SELECT *
FROM cars
代码语言:javascript
复制
id
2
3
4
5
6
7
8
9
10
11

输出:

查询:

代码语言:javascript
复制
SELECT *
FROM cars
WHERE cars.id IN (3,10,7)
ORDER BY FIND_IN_SET(cars.id,'3,10,7')
代码语言:javascript
复制
id
3
10
7

检查这里的SQLFIDDLE演示

编辑:

我不知道构建mysql查询的CAKE PHP syntax。

但是在cake php mysql中类似的查询可能是这样的:

代码语言:javascript
复制
$cars = $this->car->find('all', array(
        'conditions' => array(
            'car.id' => array(3, 10, 7)
        ),
        'limit' => 3, 
        'order' => array(FIND_IN_SET('car.id' , '3,10,7'))
    ));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35678430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档