Php 如何在Joomla 3中对逗号分隔的字段进行MySQL查询?

Php 如何在Joomla 3中对逗号分隔的字段进行MySQL查询?,php,mysql,joomla3.0,Php,Mysql,Joomla3.0,我试图在Joomla 3模块中进行MySQL查询,以在词典列中查找包含特定id值的行。所有字段都是由逗号分隔的整数字符串,这些整数来自Component Creator中的多选元素。我不习惯与Joomla一起工作,所以这可能就是我在这段代码中显示为空数组的原因。 有没有关于我做错了什么的建议 /* Example on table: tab__lexi id | lexicon | dog | cat ____|_____________|_________|________

我试图在Joomla 3模块中进行MySQL查询,以在
词典
列中查找包含特定id值的行。所有字段都是由逗号分隔的整数字符串,这些整数来自
Component Creator
中的多选元素。我不习惯与Joomla一起工作,所以这可能就是我在这段代码中显示为空数组的原因。 有没有关于我做错了什么的建议

/*
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);

尝试将代码从

$query->where($db->quote($lexiId)。'IN('.$db->quoteName('lexicon'))

$query->where($db->quoteName('lexicon')。'IN('.$db->quote($lexiId)。')

因此,它将生成如下查询:

从lexi中选择狗、猫,其中lixicon在(5)中

但若您在lexicon列中的数据存储在一行中,则不能在operator中使用,但可以使用LIKE(这将降低您在大型数据集上的性能)

类似SQL的示例

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

尝试从$query->where($db->quote($lexiId)切换代码;到('.$db->quote($lexiId.')中的$query->where($db->quote('LEXION');所以它会生成这样一个查询:从lexi中选择dog,cat,其中lixicon在(5)中;但如果您在lexicon列中的数据存储在一行中,而您不能在operator中使用,但您可以使用LIKE(这将降低您在大型数据集上的性能),感谢您的建议Igor,但这不起作用。使用LIKE也不起作用。数据在phpMyAdmin中显示为逗号分隔的字符串,如示例所示。您是否尝试过像这样运行脚本:从lexi中选择dog,cat,其中的词典为“%YOUR_VALUE_HERE%”?如果您正在进行Joomla开发,请加入Stack Exchange。如果您能够提供Joomla支持,请加入Stack Exchange(我们始终可以使用更多喜欢帮助他人的成员)。事实是,OP或开发人员都不应该使用您的建议。请看我的演示链接评论下的问题。