【发布时间】:2017-11-29 14:04:31
【问题描述】:
我正在尝试查询一个 wordpress 数据库,其中每个用户的每个值都存储在不同的行上。
例如
ID USER_ID FIELD_ID VALUE
1 1 2 my name is paul smith
2 1 3 i bought books
3 1 4 online
4 2 2 my name is big boy
5 2 3 i bought pens
6 2 4 offline
在这里您可以看到它不是字段名称,而是 FIELD_ID,因此 FIELD_ID=2 表示用户名,FIELD_ID=3 表示他们购买的内容,FIELD_ID=4 表示他们在线/离线。
我需要做的是创建一个 sql 语句,返回一个现在在线购买笔的用户列表。
所以我尝试这样做
选择 field_id=4 且 value='online' 的所有用户
string online= "(select * from table where FIELD_ID='4' AND VALUE='online')";
选择 field_id 3 包含“笔”的所有用户
string pens="(select * from table where FIELD_ID='3' AND VALUE LIKE '%pens%'";
然后像这样把它们放在一起
string query=pens + " WHERE " + online;
如果我自己运行“在线”和“笔”sql语句,它可以工作,但组合的“查询”不会返回任何内容。
我想这可能是因为“在线”查询结果将包括一堆现在在线的用户的 USER_ID,但是第二个查询必须对每个 USER_ID 运行查询并返回值。
所以它必须知道从“在线”查询中选择 USER_ID 字段,然后分别查询每个 USER_ID 并将组合结果发回。
我不知道如何只创建一条 SQL 语句来一次性完成所有操作,然后将现在在线购买笔的用户发回。
【问题讨论】:
标签: mysql