通过使用mysql中的元键获取元值

时间:2016-01-09 07:24:53

标签: php mysql wordpress

我正在使用wordpress。我要制作自定义过滤器。我希望memberId使用metakey。

我的表结构如下表所示 enter image description here

参考问题:php - get meta value by using meta key from mysql

我的最终陈述如下:

Address[] froms = messages[i].getFrom();
String email = froms == null ? null : ((InternetAddress) froms[0]).getAddress();
if("seller-notification@amazon.com".equalsIgnoreCase(email))
{//Your work}

当我尝试编写此查询时,我什么都没有。

如何编写查询以获取memberMeta字段上的2或3条件的memberId?

4 个答案:

答案 0 :(得分:0)

您正在查询memberMeta等于kilo AND 等于boy,这显然永远不会成立。您可能会寻求或条件:

select distinct(memberid) from membermetas 
where 
(memberMeta = 'kilo' and memberMetaValue >= 90)
OR
(memberMeta = 'boy' and memberMetaValue <= 175)

如果您希望memberMetaValue条件适用于memberMeta个匹配项,那么它将是:

select distinct(memberid) from membermetas 
where (memberMeta = 'kilo' OR memberMeta = 'boy')
AND (memberMetaValue >= 90 AND memberMetaValue <= 175)

您甚至可以将其简化为:

select distinct(memberid) from membermetas 
where (memberMeta = 'kilo' OR memberMeta = 'boy')
AND (memberMetaValue BETWEEN 90 AND 175)

答案 1 :(得分:0)

temp

答案 2 :(得分:0)

这里我写了下面的查询,它完美无缺。我的疑问是:

 select membermetas.memberid from membermetas
 INNER JOIN membermetas as table1 ON  membermetas.memberid = table1.memberid AND table1.memberMeta = 'kilo' AND table1.memberMetaValue >= '90'  
 WHERE membermetas.memberMeta = 'boy' AND membermetas.memberMetaValue >= '175'  

答案 3 :(得分:-2)

你可以提供你桌子的截图吗?我问这个是因为你的问题通常不适合wordpress通常的表结构。我的意思是,除非你在安装wp表上更改它,否则所有都有前缀wp _&#39; tableName&#39;。现在有一个选项可以在安装时更改,大多数人会忽略它。

接下来我问,因为用户表的wordpress结构与此有很大不同。 user_id,user_name等。

最后我问这个,因为你提供的引用从未说过这是一个wordpress表。

此外,如果您确定查询正确,那么您与DB的连接如何?你在使用PDO,MySQL,MySqlite吗?可能有多种原因无法获得结果。

最后一个wordpress有一个非常安全的结构,它不仅仅是简单地编写查询并连接到数据库,如果你在wordpress中这样做,你需要首先挂钩到数据库然后使用内置函数来进行查询,创建新表等。如果您在wordpress之外进行操作,则可以访问数据库,但如果您的脚本编写得不好,则会将整个站点暴露给注入。