php - mysql 和 php : Data extraction

标签 php mysql

我一直在试图找出解决以下问题的方法。 这很复杂。所以留在我身边。

我从 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/

相关文章:

php - AJAX+PHP投票系统

php - 表的选择查询不起作用?

php - 如何从一两个字段获取其余记录?

php - 在浏览器中编辑html

php - 在 symfony2 中为特定 Controller 设置 max_execution_time

MySQL:查找重复/冲突的行

php - 在 php 中组合两个 mysql 查询

Mysql 死锁 - 事务是否正在等待它持有的锁?

PHP在浏览器中长时间运行的进程

php - 存储过程和包装它的 php 代码上的双重事务