-2

mysql データベースの行間のいくつかのフィールド間に違いがあるかどうかを判断しようとしています。

たとえば、名前フィールドが 1 つの行で異なる場合、結果をエコー出力します。

これに最適な方法は何ですか?

編集:

例えば

Name          AGE
john smith    68
john smith    68
John M Smith  68

3 行目の名前が他の行とは異なることを検出するスクリプトが必要ですが、名前と年齢の両方のフィールドに対してこれを実行できるようにします

4

2 に答える 2

0

それで、名前で特定の逸脱を測定できるデータセットをグループ化したいと思いますが、年齢は同じでなければなりませんか?

したがって、これを正しく理解していれば、「年齢」は信頼できる値ではありません。人は年に一度年を取り、年齢は時代遅れになるからです。生年月日を使用します。

「名前」:同じ日に2人の男の子が生まれる可能性があります。そのため、比較するにはさらに多くのデータが必要です。名前だけあれば、「レーベンシュタイン距離」を利用できます。これはストアド プロシージャで実装するか、php で計算する必要があります。

于 2012-07-16T10:30:45.653 に答える
0

最初に考えなければならないこと: 何と違うのか? 列が持つべき値を常に定義する必要があります。68 歳の「john smith」以外のすべての行が必要な場合、ステートメントは次のようになります。

SELECT * FROM table WHERE name <> "john smith" AND age <> 68;

これにより、定義された値とは異なるすべての行が返されます。

非常に基本的な PHP コードの例は次のようになります。

$mysqli = new mysqli('hostname', 'username', 'password', 'database');

$query = 'SELECT * FROM table WHERE name <> "john smith" AND age <> 68';

if($result = $mysqli->query($query)){
    while($row = $result->fetch_assoc()){
        // do something with the results using $row['name'] and $row['age']
    }
}
于 2012-07-16T10:21:47.643 に答える