【问题标题】:How to retrieve results of meta_values by meta_value and meta_key?如何通过 meta_value 和 meta_key 检索 meta_values 的结果?
【发布时间】:2016-03-22 18:52:54
【问题描述】:

我正在尝试从我的 WP 数据库中选择 meta_value = 'x' 和 meta_key = 'y' 的所有元值。但我的查询什么也没返回:

SELECT meta_value FROM `tst_postmeta` WHERE meta_key = 'thevoters' AND meta_value = 'mint'

我在这里做错了什么?!

更新

查询应返回 meta_value 列,其中包含一些基于名为“the_voters”的 meta_key 的 id,但其中 meta_value 等于“mint”。

我也试过这个查询:

SELECT meta_value FROM `tst_postmeta` WHERE meta_key = 'thevoters' AND meta_key = 'sticker_chosen' AND meta_value = 'mint'

【问题讨论】:

  • 我不是 WP 专家,但有几个问题 - 你真的有东西,可以通过你的“过滤器”选择,根据你的查询,你只能得到一个结果 - mint
  • 您没有符合此条件的行
  • @demo,我知道它不返回任何内容,因为它不匹配。如果我不够清楚,我已经用我期望查询的内容更新了我的问题。谢谢。
  • 你的SQL是正确的,你的逻辑是错误的。删除您的条件,然后重试。
  • @vkp,是的,这是真的,用我希望查询执行的操作更新了我的问题,但我上面的查询是我到目前为止的结果。

标签: php sql wordpress


【解决方案1】:

根据您提供的少量信息和您的查询,我猜您的查询不存在任何数据。

您是否尝试过查看运行时显示的内容

SELECT * 
FROM tst_postmeta

这应该会向您显示表格中的所有内容,您可以按结果中的元键和元值进行过滤,以查看这些值是否存在任何内容。

您还可以尝试将查询分解为两个查询,以查看其中一个是否提供结果,如果任一查询均未显示任何结果,则组合它们时将没有值。

SELECT meta_value 
FROM tst_postmeta 
WHERE meta_key = 'thevoters' 

SELECT meta_value 
FROM tst_postmeta 
WHERE meta_value = 'mint'

【讨论】:

  • 当出现你意想不到的事情时,尽你所能(在你的能力范围内)移除所有东西,并以更简洁的心态重新接近它。
  • @Bavard,我已经用更多信息更新了我的问题,以防我不够清楚。谢谢。
  • @Anonymous 不幸的是,他的回答仍然是正确的。这就是你应该如何处理这个问题。分解它。
  • @Anonymous 试试我刚刚添加的第二个选项。如果任一查询给您任何结果,请告诉我
  • @Bavard,他们俩都给我列了结果。那不是我的问题。我想将您上面所说的两个选择查询合并为一个。并仅获取 meta_key='thevoters' 的 meta_values。其中 meta_value = 'mint'。
【解决方案2】:

您的 SQL 是正确的,但结果集中没有数据。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 2018-08-06
    • 2019-11-06
    • 2018-02-16
    • 1970-01-01
    • 2013-04-08
    • 2020-04-21
    • 2015-07-06
    • 1970-01-01
    相关资源
    最近更新 更多