如何在joomla3中对逗号分隔的字段进行mysql查询?

z4bn682m  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(434)

这个问题在这里已经有了答案

以逗号分隔的列值搜索post数组(1个答案)
三个月前关门了。
我试图在joomla3模块中进行一个mysql查询,以查找包含特定id值的行 lexicon 列。所有字段都是用逗号分隔的整数字符串,这些整数来自在中生成的多个select元素 Component Creator . 我不习惯和joomla一起工作所以也许这就是我 $results 显示为空数组 [] 在这个代码里。有什么关于我做错了什么的建议吗?

  1. /*
  2. Example on table: tab__lexi
  3. id | lexicon | dog | cat
  4. ____|_____________|_________|_________
  5. 1 | 1,2 | 3,8 | 4
  6. 2 | 5,6,9 | 3,2 | 1,3,4,5
  7. * /
  8. $lexiId=5;
  9. $query = $db->getQuery(true);
  10. $query->select($db->quoteName(array('dog', 'cat')));
  11. $query->from($db->quoteName('#__lexi'));
  12. $query->where($db->quote($lexiId) . ' IN ('. $db->quoteName('lexicon').')');
  13. $db->setQuery($query);
  14. $results = $db->loadObjectList();
  15. $res=json_encode($results);
kzmpq1sx

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的示例

  1. SELECT dog, cat FROM lexi WHERE lexicon LIKE "%YOUR_VALUE_HERE%";

相关问题