gpt4 book ai didi

mysql - Zend Select and NOT IN 数组

转载 作者:行者123 更新时间:2023-11-29 00:28:01 25 4
gpt4 key购买 nike

我想通过 id 选择不在其他表中的表条目。使用了以下代码:

$table2 = new OfferTable();
$select = $table2->select()->from('offers', array('aId as id'))
->where('mem_id =?', $memId);

$table = new otherTable();
$select2 = $table->select()->where('id NOT in (?)', $select);
$result = $table->fetchAll($select);

这工作正常,但是当 OfferTable 有很多条目而第一个选择只选择几个条目时速度很慢。

所以我尝试了以下方法:

$table2 = new OfferTable();
$select = $table2->select()->from('offers', array('aId as id'))
->where('mem_id =?', $memId);
$fetch = $table2->fetchAll($select);
$id_array = array();
foreach($fetch as $value){
$id_array[] = $value->id;
}

$table = new otherTable();
$select2 = $table->select()->where('city = ?', $city)
->where('id NOT in (?)', $id_array);
$result = $table->fetchAll($select);

这似乎工作得更快,但有时我会收到以下错误消息:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')) AND (id NOT IN ('3956', '3821'))' at line 1

我不明白为什么我会收到这个错误,尤其是为什么我不能一直收到它。感谢您的帮助!

最佳答案

我想我解决了问题:

在原始代码中,我使用了两个 ->where('id NOT in (?)', $id_array) 语句。当其中一个数组为空时发生错误。

关于mysql - Zend Select and NOT IN 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18055147/

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