【发布时间】:2014-12-12 15:28:58
【问题描述】:
id | sales_id
===+================
1 | 1,2
2 | 1,2
3 | 3
4 | 1
$id = array('1','2');
$query->where($id.' IN (sales_id)');
我需要返回 id : 1,2,4
来自包含数组的列
数组中的哪里有可能?
我用 foreach 解决了这个问题,但我认为有更好的解决方案
$sales = $this->getSales();
foreach ($sales as $sale) {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__hair_service');
$query->order('ordering ASC');
if($id){
$query->where('id = '.$id);
}
$query->where('state = 1');
$query->where($sale->id.' IN (sales_id)');
$db->setQuery($query);
$results[] = $db->loadObjectList();
}
$services = array();
foreach($results as $result) {
$services = array_merge($services, $result);
}
return $services;
【问题讨论】:
-
MySQL 没有数组数据类型之类的东西,最后我检查了一下。 (即使确实如此,大多数了解数据库设计的人都会警告您不要以您尝试的方式使用它。)
-
为每个 php 数组项添加 AND WHERE 怎么样?
-
您的问题不清楚。请改写。
-
你知道什么是关系吗?