Compare meta key separation

时间:2015-05-21 作者:user73437

我有一个叫做$availability 可以有四个选项之一,但也可以有多个由管道分隔的值:|.

例如,该值可以是:severaltimes_week|oncetwice_month|occasionally.

我还没有找到适合这个问题的比较运算符,哪一个最有效?

if ( $_GET[\'ava1\'] == "on" ) { $availability .= "severaltimes_week| "; }
if ( $_GET[\'ava2\'] == "on" ) { $availability .= "oncetwice_week| "; }
if ( $_GET[\'ava3\'] == "on" ) { $availability .= "oncetwice_month| "; }
if ( $_GET[\'ava4\'] == "on" ) { $availability .= "occasionally"; }

$meta_args[] = array(
    \'key\' => \'availability\',
    \'value\'   => $availability,
    \'compare\' => \'IN\'
);

2 个回复
SO网友:Howdy_McGee

您可以使用LIKE 操作员:

$meta_args[] = array(
    \'key\' => \'availability\',
    \'value\'   => $availability,
    \'compare\' => \'LIKE\'
);
在法典中,您可以看到comparison operators.

SO网友:s_ha_dum

列出的所有比较运算符都对整个字符串进行操作,除了LIKE, NOT LIKE, REGEXP, NOT REGEXP,RLIKE. 然而,使用这些操作符将创建效率非常低的查询,并且可能是不可靠的查询。您正在与MySQL的一些基本设计进行斗争。

尽可能多次地保存“可用性”键——也就是说,在数据库中使用不同的值保存不同的键,而不是以串联字符串的形式保存。然后,您可以根据需要使用各种运算符搜索这些键/值,并使用相对更高效的查询进行搜索。

另请参见:https://wordpress.stackexchange.com/a/88715/21376

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post