Я пытаюсь удалить часть из запроса SQL WHERE. Хотя в Regexpal
у меня нет проблем с моим шаблоном, когда я preg_replace
выражение в preg_replace
он НЕ работает.
Пример оригинального не измененного запроса. Часть WHERE:
WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (800,801) ) AND wp_posts.post_type = 'service_photo' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND ( wp_postmeta.meta_key = 'custom_meta_partner_subscription_level' )
Мой код и шаблон:
$where = preg_replace("(AND \( wp_term_relationships\.term_taxonomy_id IN \([0123456789,]*\) \))", "", $where);
return $where;
Вы знаете, что я не так?
PHP: 5.4.19
благодаря
Вот пример кода, показывающий использование вашего регулярного выражения в PHP:
$re = "/(AND \\( wp_term_relationships\\.term_taxonomy_id IN \\([0-9,]*\\) \\))/";
$str = "WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (800,801) ) AND wp_posts.post_type = 'service_photo' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND ( wp_postmeta.meta_key = 'custom_meta_partner_subscription_level' )";
$str = preg_replace($re, "", $str);
См. Здесь.
[0123456789,]
можно безопасно заменить на [0-9,]
.
$where
? Почему вы возвращаете его, вы можете повторить его, чтобы проверитьWHERE 1=1 AND wp_posts.post_type = 'service_photo' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND ( wp_postmeta.meta_key = 'custom_meta_partner_subscription_level' )