SQL LIKE使用Drupal 7查询PHP序列化数据


SQL LIKE Querying PHP Serialized data with Drupal 7

使用Drupal 7,我试图使用LIKE命令从数据库中获取结果,但它无法识别我的通配符。我不确定这是否是Drupal的问题,或者我是否做错了什么。无论如何,这里有一个我试图匹配的数据示例,以及我的模式

要匹配的数据

a:2:{i:1;s:2:"17";i:2;s:1:"3";}

我的同类查询

$pattern1 = 'a:2:{i:1;s:2:"17";i:2;s:1:"%";}'//works
$pattern2 = 'a:2:{i:1;s:1:"%";i:2;s:1:"3";}'//fails
$result = db_query(
    "
        SELECT pa.nid, pa.model, pa.combination
        FROM {$Product_Adjustments} pa
        WHERE pa.combination LIKE :pattern
    ",
    array(
        ':pattern' => $pattern1
    )
);

此外,我还尝试了"_"通配符,但这并没有带来任何

您确定模式是正确的吗?注意模式1,第一个字符串是2长,在模式2中,您要查找的是一个只有1长的字符串。你确定这是对的吗?序列化数据的各个片段的长度是否足够可预测,甚至可以通过这种方式进行查询?这似乎不太可能,您可能不得不存储一些规范化的数据。