我在选择多行并将其作为一行检索时遇到问题。问题是Joomla将来自userprofile的数据存储在名为profile_key和profile_value的两列中。我想检索名为'profile.li_vid'的列'profile_key'中的所有行,'profile.li_kre'对应于'profile_value'列,其中值为“1”。
数据库草稿
user_id | profile_key | profile_value
475 | profile.li_vid | "1"
475 | profile.li_kre | "1"
475 | profile.address1 | "1"
476 | profile.li_vid | "1"
476 | profile.li_kre | "1"
476 | profile.address1 | "1"
代码
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select ($db->quoteName(array('a.id','a.name', 'b.profile_value','b.profile_key')))
->from ($db->quoteName('#__users','a'))
->where ($db->quoteName('b.profile_key') . " = " . $db->quote('profile.li%'))
// ->where ($db->quote('profile_value') . " = \"1\" " )
->join('INNER', $db->quoteName('#__user_profiles','b').'ON('.$db->quoteName('a.id').'='.$db->quoteName('b.user_id').')')
->order($db->quoteName('a.name').'ASC')
;
$db->setQuery($query);
$rows = $db->loadObjectList();
当我在foreach循环中将它们回显到屏幕时,它们出现在我的表中的单独行中,因为代码逐行循环遍历每个查询结果。我想到了一个解决方案,我将多行连接成一个 - 但是如何? 我希望你能帮助我。
答案 0 :(得分:0)
请记住:GROUP_CONCAT()默认情况下char限制为1024!