1

次のようなテーブルがあります。

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

私が直面している問題は、私の Web ページの 1 つで、「uild1」列の値しか利用できないことです。テーブルには、「John」に対応する 2 つのエントリがあります。そのため、ユーザーが別の「John」を選択しても、その行の他の値のみが表示されます。私の Web ページでは、ドロップダウン リストに 2 つの「John」が表示されますが、クエリは「John」条件を使用して作成されているため、どちらの場合も最初の行の結果のみが表示されます。

4

4 に答える 4

0

私があなたの質問を正しく理解している場合、クリックできる 2 人のジョンがいる Web ページが与えられた場合、それに応じて各結果を取得するにはどうすればよいでしょうか? 残念ながら、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 に答える
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

build1 は一意でも主キーでもないため、条件に一致するすべての行を選択しています。結果を見つけるには、主キーまたは一意のキーを使用する必要があります。選択ドロップダウンでは、オプション値は一意/主キーである必要があるため、特定の「ジョン」を選択すると、そのジョンの結果が取得されます。

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

もう少し情報を投稿する場合。より良いコードを書くことは役に立ちます。

于 2013-01-12T05:20:56.093 に答える