1

我有一张这样的桌子:

ID   build1   build2  test    status
1    John     ram     test1   pass
2    john     shyam   test2   fail
3    tom      ram     test1   fail

我面临的问题是 - 在我的一个网页上,只有“uild1”列中的值可供我使用。现在在表中有 2 个条目对应于“John”。因此,即使用户选择了不同的“John”,它也只显示该行中其他值的值。在我的网页上,在下拉列表中,用户可以看到 2 个“John”,但由于使用“John”条件进行了查询,因此在这两种情况下,它只显示第一行的结果。

4

4 回答 4

0

您 build1 不是唯一的或主键,因此它会选择与您的条件匹配的所有行。您应该使用主键或唯一键来查找结果。在您的选择下拉菜单中,您的选项值应该是 uniq/主键,因此当您选择特定的“John”时,它将获得该 john 的结果。

   select * from table_name where id=params[:id] ; 

如果您发布更多信息。为您编写更好的代码会很有帮助。

于 2013-01-12T05:20:56.093 回答
0

尝试这个:

SELECT t1.*
FROM Table1 t1
WHERE t1.build1 NOT IN(SELECT t2.build1
                   FROM table1 t2
                   GROUP BY t2.build1
                   HAVING COUNT(t2.build1) > 1);

SQL 小提琴演示

这只会给你:

| ID | BUILD1 | BUILD2 |  TEST | STATUS |
-----------------------------------------
|  3 |    tom |    ram | test1 |   fail |

因为,它是唯一没有重复的行build1

于 2013-01-12T04:55:01.727 回答
0

如果我正确理解您的问题,给定一个有 2 个 johns 可供点击的网页,您如何相应地获得每个结果?不幸的是,仅使用 SQL 是无法做到这一点的。

在您的 PHP 代码中,如果您可以使用 ID 或计数器/行号将参数传递给 SQL 代码,那么您可以查询数据库以返回相应的唯一记录。

祝你好运。

于 2013-01-12T05:04:08.953 回答
0
select * from yourtable where build1 == 'john' limit 1;
于 2013-01-12T05:05:13.377 回答