来自joomla网站的特殊mysql查询
我有这样的背景:来自joomla网站的特殊mysql查询,mysql,joomla,Mysql,Joomla,我有这样的背景: CREATE TABLE `atdees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `params` text NOT NULL, PRIMARY KEY (`id`) ); INSERT INTO `atdees` (`id`, `params`) VALUES (1,'{"field282":"0","field347":"1"}'), (2,'{"field282":"0","field347":"0"}'), (3,
CREATE TABLE `atdees` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`params` text NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `atdees` (`id`, `params`) VALUES
(1,'{"field282":"0","field347":"1"}'),
(2,'{"field282":"0","field347":"0"}'),
(3,'{"field282":"0"}');
我必须从表中提取行,其中:
atdee必须具有字符串“field282:0”
atdee具有字符串“field282:0”,但不具有字符串“field347:0”
atdee同时具有字符串“field282:0”和“field347:0”
换句话说,我必须提取Id 2和Id 3
多谢各位
Ps:对不起,我的英语不是以英语为母语的
编辑:我找到了我的查询
SELECT id
FROM atdees
WHERE
INSTR(`params`, '"field282":"0"') > 0 and
( params LIKE '%"field347":"0"%' OR
INSTR(`params`, '"field347"') = 0 )
如果只是从数据库中获取数据,则可以使用以下方法:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('id'));
$query->from($db->quoteName('#__atdees'));
$query->where($db->quoteName('params') . " = " . $db->quote('"field282":"0"') . "OR" . $db->quote('"field347":"0"'));
$db->setQuery($query);
$results = $db->loadObjectList();
foreach ( $results as $result ) {
echo "<p>" . $result->id . "</p>";
}
不确定数据库表是否用于Joomla扩展,但如果是,请在查询中将其保留为u atdees,否则更改为atdees
希望这有帮助这是标准的MySQL。你读过Joomla文档中关于数据库查询的内容吗?->谢谢您的回答,但您的解决方案会返回每一行。我试过了,但没用。