php - 查找一行三列中的用户ID

标签 php mysql

我需要检查 10 行中的 3 列,其中我们按降序匹配用户 ID,找到用户 ID 并显示结果

假设这是我的 table

表名称提要

id   buy_id sell_id sold_id
30     2      5       3
29     6      4       9  
28     44     21      36
27     26     2       15
26     4      2       9
25     8      7       2
24     11     2       3
23     2      1       9  

例如:我们需要找到用户ID 2并将限制设置为10个输出。

我只处理一列,所以我不知道如何匹配一行中的 3 列。

我想要 10 个输出...

if userid = buy_id then echo "buyer";
if userid = sell_id then echo "seller";
if userid = sold_id then echo "third party";

当我们在每行的列中匹配 userid 2 时,输出应该是这样的:

1.buyer
2.seller
3.seller
4.third party
5.seller
6.buyer

因为用户 ID 2 只有 6 个事件,所以只有 6 个输出,但我需要最多 10 个和最小 0 个。

我还没有尝试过任何代码,因为我不知道如何处理这个问题。

谢谢希望我说清楚了:|

最佳答案

试试这个:

SELECT *
FROM (
  (SELECT buy_id userid, id, 'buyer' type
   FROM feeds)
  UNION
  (SELECT sell_id userid, id, 'seller' type
   FROM feeds)
  UNION
  (SELECT sold_id userid, id, 'third party' type
   FROM feeds)
) feeds_data
WHERE feeds_data.userid = $CHOOSE_USERID
LIMIT 10

当您为 $CHOOSE_USERID 选择 2 时,应返回如下表格:

| userid | id |    type     |
|--------|----|-------------|
| 2      | 30 | buyer       |
| 2      | 27 | seller      |
| 2      | 26 | seller      |
| 2      | 25 | third party |
| 2      | 24 | seller      |
| 2      | 23 | buyer       |

您可以通过更改 $CHOOSE_USERID 的值来自定义查询,并且可以使用 id 字段或 type 字段进一步向下钻取使用 feeds_data 表别名。

关于php - 查找一行三列中的用户ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726990/

相关文章:

php - 检查每天使用 PHP 更新的大型 XML 文件(100k+ 条目)中的更改的最快、最有效的方法

mysql - 选择具有特定年份的最新日期时间的行

mysql - 子查询到LIKE条件mysql

javascript - 如何在使用 PHP 插入数据库之前检查任何输入值是否有数据?

Mysql查询显示仅匹配精确值的值

mysql查询仅在其他字段存在时才更新字段?

php - Laravel updateOrCreate 方法——更新你匹配的同一列

PHP select timediff with select query and group by user

php - Doctrine 收集条件 isNull

PHP,从数组中获取值?