在mysql中为WHERE子句添加动态数量的变量

时间:2014-03-09 01:34:06

标签: php mysql sql

我有以下mySQL查询:

SELECT act_id, vote_date, vote_score,  'vote' AS type
FROM votes
WHERE user_voter =  '1'

我希望能够根据另一个mySQL查询的结果向user_voter子句添加WHERE。例如,

SELECT user_2
FROM friends
WHERE user_1 = '1'

这将根据匹配数输出动态数量的结果。

因此,如果第二个查询输出:

3
4
11
32

然后我希望第一个查询是:

SELECT act_id, vote_date, vote_score,  'vote' AS type
FROM votes
WHERE user_voter =  '1' AND user_voter = '3' AND user_voter = '4' AND user_voter = '11' AND user_voter = '32'

希望这是有道理的!

由于我使用的是PHP,我想我可能需要创建while loop并将结果输出为"user_voter = '".$user2."' ";,然后在运行之前将其附加到SELECT查询。< / p>

1 个答案:

答案 0 :(得分:1)

您可以在IN()

中执行子查询
SELECT act_id, vote_date, vote_score,  'vote' AS type
FROM votes
WHERE user_voter IN (
                     SELECT user_2
                     FROM friends
                     WHERE user_1 = '1'
                    )