Come suggerito da optime e come stai provando a fare, puoi slittare per OR poi, da quel che ho provato, potresti filtrare l'array cercando con preg_match per rilevare la presenza di "id_record" con il valore da te stabilito.
Dopo questi passaggi puoi riassemblare la stringa con gli elementi risultanti. Se poi la stringa iniziale è avvolta da parentesi, e vuoi che sia così anche per quella filtrata, dovrai provvedere a rimuoverle e riapplicarle opportunamente.
Qui una possibile soluzione:
Codice PHP:
$id_record = 91;
$querystr = "(id = 292 AND id_record = 77 OR id = 298 AND id_record = 78 OR id = 483 AND id_record = 78 OR id = 313 AND id_record = 79 OR id = 428 AND id_record = 84 OR id = 444 AND id_record = 86 OR id = 539 AND id_record = 91)";
$querystr = trim($querystr, "()");
$arror = explode(" OR ", $querystr);
$arror = array_filter($arror, function($str) use ($id_record) {
return preg_match("/id_record *= *{$id_record}/", $str);
});
$querystr = "(" . implode(" OR ", $arror) . ")";
echo $querystr;
Vedi se può andare, fai sapere