奇怪的访问SQL数据

时间:2014-01-05 07:53:50

标签: php mysql sql arrays

这是一个相当奇怪的问题,我没有它的标题。

这就是我想要做的,看看这张图: enter image description here

我需要访问这样的数据

first_name = Raphael

我完全不知道如何实现这一点。

2 个答案:

答案 0 :(得分:0)

SELECT meta_value FROM tablename WHERE meta_key = first_name

应该做的伎俩!

如果meta_key列显示'first_name'

,我们正在做的是选择元值列中的值

您可以对所有字段执行相同的操作

SELECT meta_value FROM tablename WHERE meta_key = admin_color

从屏幕截图中返回“新鲜”。

答案 1 :(得分:0)

如果您需要将名字恰好为Raphael的用户的所有/某些属性聚集在一起,那么您可以使用条件聚合这样做

SELECT user_id,
       MAX(CASE WHEN meta_key = 'first_name' then meta_value END) first_name,
       MAX(CASE WHEN meta_key = 'last_name' then meta_value END) last_name,
       MAX(CASE WHEN meta_key = 'nickname' then meta_value END) nickname,
       MAX(CASE WHEN meta_key = 'description' then meta_value END) description,
       ...
  FROM wp_usermeta
 GROUP BY user_id
HAVING MAX(meta_key = 'first_name' AND 
           meta_value = 'Raphael') > 0

示例输出:

| USER_ID | FIRST_NAME | LAST_NAME | NICKNAME | DESCRIPTION |
|---------|------------|-----------|----------|-------------|
|      19 |    Raphael |    Landau | enterseo |      (null) |

这是 SQLFiddle 演示