来自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文档中关于数据库查询的内容吗?->谢谢您的回答,但您的解决方案会返回每一行。我试过了,但没用。