0

我有以下sql:

tbl_items  
title extra_fields  
Prod1 [{"id":"2","value":"1"},{"id":"3","value":"1"},{"id":"4","value":"2"}]  
Prod2 [{"id":"2","value":"1"},{"id":"3","value":"2"},{"id":"4","value":"1"}]  
Prod3 [{"id":"2","value":"2"},{"id":"3","value":"2"},{"id":"4","value":"1"}]  
Prod4 [{"id":"2","value":"2"},{"id":"3","value":"1"},{"id":"4","value":"1"}]  
Prod5 [{"id":"2","value":"2"},{"id":"3","value":"1"}]  
Prod6 [{"id":"2","value":"1"},{"id":"3","value":"1"}]  
Prod7 [{"id":"2","value":"1"},{"id":"3","value":"1"},{"id":"4","value":"1"}]  
Prod8 [{"id":"2","value":"1"},{"id":"3","value":"1"}]  

现在,我想选择所有包含{"id":"2","value":"2"};
我正在使用的值的产品joomla cms。我尝试了以下语句:

$db->setQuery('SELECT * FROM tbl_items WHERE extra_fields LIKE "%{"id":"2","value":"2"}%"');
$xFields = $db->loadObjectList();   

但这对我不起作用,有人可以帮忙吗?

4

1 回答 1

0

您的搜索字符串用双引号括起来:

"%{"id":"2","value":"2"}%"

我不知道你会如何逃避它,但它需要导致:

'%{"id":"2","value":"2"}%'

以下可能有效:

$query = "
  SELECT * 
    FROM ".$db->nameQuote('tbl_items')."  
    WHERE ".$db->nameQuote('extra_fields')." LIKE ".$db->quote('%{"id":"2","value":"2"}%').";
  ";
$db->setQuery($query);
于 2013-09-11T09:16:19.057 回答