Compare meta_query com uma Expressão regular e faça uma operação menor do que a mesma

Tenho o problema de que o meu cliente esteja usando um tema que armazene opções de itens de forma serializada na tabela post_metapost_meta .

Eu já descobri que esta não é a melhor maneira de salvar valores, especialmente se você deseja consultar sobre eles mais tarde, mas até agora não posso mudar esse fato.

Eu tentei consultá-lo com a opção de comparação REGEXP da function meta_query() .

 $metaquery['meta_query'] = array( 'key' => '_ait-dir-item', 'value' => '*\"guestcount\";s:[0-9]+:\"'.$_GET['guestcount'].'\".*', 'compare' => 'REGEXP' ); $query->set('meta_query',$metaquery); 

Então eu posso encontrar os itens com o valor geográfico exato da input do usuário.

Mas eu gostaria de encontrar todos os itens com guestcount >= input .

Como aquilo seria possível?

ATUALIZAR

Eu tentei agora com a verificação do número de um intervalo com regex (enquanto o regex está sendo criado antes)

 $gc = (string)$_GET['guestcount']; //gc...guestcount $input_regex = $gc[0]; for($i=1;$i<strlen($gc); $i++){ $input_regex .= "[".$gc[$i]."-9]"; } $compare_regex = '|[2-9][0-9]{2}|[1-9][0-9]{3}|1[0-9]{4}|20000'; 

o valor máximo do intervalo é sempre de 20.000 .

Bem … Eu não obtenho nenhum resultado com este … alguém pode ver um bug nisso?

Isso foi para a input = 150 :

'value' => '*\"guestcount\";s:[0-9]+:\"\b(1|[5-9][0-9]{2}|[1-9][0-9]{3}|1[0-9]{4}|20000)\b\".*

Atualizar

Limpei o regex e retirei th \b e o . e * e coisas … agora parece que eu encontro todos os itens, onde uma contagem de clientes é inserida … ie input=300 Eu também encontrei um com 250 guestcount

'value' => '\"guestcount\";s:[0-9]+:\"(1|[5-9][0-9]{2}|[1-9][0-9]{3}|1[0-9]{4}|20000)\"

Solutions Collecting From Web of "Compare meta_query com uma Expressão regular e faça uma operação menor do que a mesma"