这个问题在这里已经有了答案:
以逗号分隔的列值搜索post数组(1个答案)
三个月前关门了。
我试图在joomla3模块中进行一个mysql查询,以查找包含特定id值的行 lexicon
列。所有字段都是用逗号分隔的整数字符串,这些整数来自在中生成的多个select元素 Component Creator
. 我不习惯和joomla一起工作所以也许这就是我 $results
显示为空数组 []
在这个代码里。有什么关于我做错了什么的建议吗?
/*
Example on table: tab__lexi
id | lexicon | dog | cat
____|_____________|_________|_________
1 | 1,2 | 3,8 | 4
2 | 5,6,9 | 3,2 | 1,3,4,5
* /
$lexiId=5;
$query = $db->getQuery(true);
$query->select($db->quoteName(array('dog', 'cat')));
$query->from($db->quoteName('#__lexi'));
$query->where($db->quote($lexiId) . ' IN ('. $db->quoteName('lexicon').')');
$db->setQuery($query);
$results = $db->loadObjectList();
$res=json_encode($results);
1条答案
按热度按时间kzmpq1sx1#
尝试将代码从
$query->where($db->quote($lexiId) . ' IN ('. $db->quoteName('lexicon').')');
至$query->where( $db->quoteName('lexicon') . ' IN ('. $db->quote($lexiId).')');
所以它会生成如下查询:SELECT dog, cat FROM lexi WHERE lixicon IN (5);
但是,如果您的lexicon列中的数据存储在一行中,则不能使用in操作符,但可以使用like(这将降低您在大型数据集上的性能)类似sql的示例