array( 'ExhibitorTypeRequest-6ren">
gpt4 book ai didi

mysql - 带有 "LIMIT 1"的 MySQL SELECT 查询是否可能返回一个集合而不是单个值?

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:47 25 4
gpt4 key购买 nike

我在使用 CakePHP 的 Containable 行为时遇到了一个奇怪的问题。我有这个:

'contain' => array(
'ExhibitorTypeRequestType' => array(
'order' => '(SELECT et.type FROM exhibitor_types AS et WHERE ExhibitorTypeRequestType.exhibitor_type_id = et.id LIMIT 1)',
'ExhibitorType'
)
)

抛出 SQL 错误:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'SELECT et.type FROM exhibitor_types AS et WHERE ExhibitorTypeRequestType.exhibitor_type_id = et.id LIMIT 1' in 'field list'

有人知道为什么 MySQL 将此查询视为一个列吗?

更新

我在我的项目的其他地方有这个非常相似的查询,也使用 Containable,它工作得很好:

'contain' => array(
'Field',
'User' => array(
'UserField' => array(
'order' => '(SELECT f.no_order FROM fields AS f WHERE UserField.field_id = f.id LIMIT 1)'
)
)
)

最佳答案

刚刚发现如果我改变

'contain' => array(
'ExhibitorTypeRequestType' => array(
'order' => '(SELECT et.type FROM exhibitor_types AS et WHERE ExhibitorTypeRequestType.exhibitor_type_id = et.id LIMIT 1)',
'ExhibitorType'
)
)

到:

'contain' => array(
'ExhibitorTypeRequestType' => array(
'order' => '(SELECT et.type FROM exhibitor_types AS et WHERE ExhibitorTypeRequestType.exhibitor_type_id = et.id LIMIT 1)',
'ExhibitorType' => array(
'order' => 'type'
)
)
)

神奇的效果! 'order' => 'type' 在 ExhibitorType 上下文中是绝对不相关的,它在某种程度上是需要的。否则,Cake 会生成奇怪的 SQL 错误。

关于mysql - 带有 "LIMIT 1"的 MySQL SELECT 查询是否可能返回一个集合而不是单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com