php - 在 cakephp 查找查询中的同一个表上使用 sql union

标签 php mysql sql cakephp cakephp-1.3

假设我有这样的查询:

(SELECT * FROM user WHERE id < 5 order by id DESC LIMIT 1)
UNION
(SELECT * FROM user WHERE id = 5)
UNION
(SELECT * FROM user WHERE id > 5  LIMIT 1)

如何将上述查询转换为 CakePHP find('all')查询?

谢谢

最佳答案

使用 Model::find('neighbors')

将其重写为 find('all') 会有问题,但是 find('neighbors') 可能符合您的要求;

参见文档 find('neighbors')

这应该会为您提供所需的数据,但您可能必须稍微采用您的代码才能使其在返回数组的不同“布局”下正常工作;

 $data = $this->User->find('neighbors', array('field' => 'id', 'value' => 5));

更新

刚看到您使用的是 CakePHP 1.3,上面发布的链接指向文档的 2.x 部分。尽管类似,但这是 CakePHP 1.3 的文档:

http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Models.html#find-neighbors

关于php - 在 cakephp 查找查询中的同一个表上使用 sql union,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140208/

相关文章:

MySql 二进制查询

sql - 在 SQL 查询中连接 Azure 数据工厂管道参数

php - file_get_contents 不适用于本地文件

PHP 找到多少行

mysql - MySQL 中 Double 和 Decimal 的使用

mysql - 排除空结果并根据多个元素计算行数

php - 如何检测在 2 个日期时间列之间搜索的事件

php - 优先随机选择

php - 如何复制MySQL字段?

php - 按时移获取数据 - PHP MYSQL