我一直在试图找出解决以下问题的方法。 这很复杂。所以留在我身边。
我从 user
表中检索一个字段,其中包含他 friend 的 CSV 格式的用户 ID
(3,4,5,6,7)
还有一个名为transaction
的表,看起来像这样
tid user1 user2 type_of_trade
1 3 4 barter
2 5 6 share
3 6 7 bargain
4 4 3 barter
5 3 7 share
现在我需要显示我 friend 的交易。
所以我拆分了 CSV,将它们放在一个数组中,并为我运行查询的每个 friend
friends = explode(",","3,4,5,6,7");
for($i=0;$i<=count(friends);$i++)
{
// I execute this--SELECT * FROM transaction WHERE user1 = friends[$i] or user2 = friends[$i]
}
现在同样发生在 3、4、5、6 和 7
当针对 4
执行查询时,出现相同的结果,因此我得到了重复项。
我已经尝试了一切。但我无法弄清楚这一点。
有人可以提出更好的解决方案还是可以修改它本身?
最佳答案
在这种特殊情况下,不要分解
它。
SELECT * FROM transaction WHERE user1 IN (3, 4, 5, 6, 7) OR user2 IN (3, 4, 5, 6, 7)
关于php - mysql 和 php : Data extraction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585697/