0

6 つの「ヘッダー」条件で構成されるデータベース テーブルがあり、詳細データを取得するには、これらの列の任意の組み合わせを照合する必要があります。

8 つのヘッダー列はそれぞれオプションであるため、基礎となるデータベースがどの基準を持つかはわかりません。

サンプルデータの使用:-

+------------+-----------+-----------+-----+---------+--------------+--------+
| First Name | Last Name | Home Town | Age |  Gender |    Skill     | Salary |
+------------+-----------+-----------+-----+---------+--------------+--------+
| James      | Smith     | New York  | 30  | Male    | Train Driver |  30000 |
| Pete       | Jones     | ?         | 30  | Male    | ?            |  35000 |
| ?          | Smith     | New York  | ?   | Male    | ?            |  75000 |
| ?          | ?         | ?         | 30  | ?       | ?            |  30000 |
+------------+-----------+-----------+-----+---------+--------------+--------+

給与を見つけたい場合は、次のように指定できます:-

First Name = James
Last Name = Smith
Home Town = New York
Age = 30
Gender = Male
Skill = Train Driver

この基準を使用すると、1 行目、3 行目、4 行目が返されることが期待されます。

すべての異なる組み合わせで基準を繰り返し処理する以外に、これを行うための巧妙な方法はありますか?!

よろしくお願いします。

4

1 に答える 1

0

mysql では IFNULL() を使用します (SQL サーバーには同等の NVL() メソッドがあると思います)

例えば

whereクエリで:

where IFNULL(row.FirstName, "James") == "James" and IFNULL(row.LastName, "Smith") and ..

ORを使用する方がさらに良いでしょう(つまり、名が一致するか、row.firstnameがnullであることを確認してください)

于 2013-05-21T08:54:59.223 に答える