【问题标题】:Checking differences between the fields in mysql database using Php使用 PHP 检查 mysql 数据库中字段之间的差异
【发布时间】:2012-07-16 10:11:24
【问题描述】:

我正在尝试确定 mysql 数据库的行之间的多个字段之间是否存在任何差异。

例如,如果 name 字段在一行中不同,则输出一个结果。

最好的方法是什么?

编辑:

例如

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

我想要一个脚本,检测第三行中的姓名与其他脚本不同,但能够对姓名和年龄字段执行此操作

【问题讨论】:

  • 与什么不同?比较哪些行与哪些其他行?最好给出一些具有预期结果的样本数据,否则不清楚你的确切意思。
  • 请详细说明

标签: php mysql field


【解决方案1】:

您首先要考虑:与什么不同?您始终必须定义列应具有的值。如果您想要所有年龄为 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']
    }
}

【讨论】:

    【解决方案2】:

    那么,您想对名称中可以衡量某种偏差但年龄必须相等的数据集进行分组?

    所以,如果我理解正确的话: “年龄”不是一个可靠的值,因为人们一年会变老一次,而且年龄会过时。使用生日。

    “姓名”:2个人可以在同一天出生。所以需要更多的数据来比较。如果你只有名字,那么你可以利用“Levenshtein-Distance”。这必须使用存储过程来实现,或者您使用 php 计算...

    【讨论】:

    • 年龄和姓名只是示例字段,我只是在寻找一般检查,看看是否彼此不同或以前的条目例如
    • 例如,我有三个字段都具有增量 ID,第 3 行与前两个不同。我需要能够检查所有行并查看哪一个不同等
    • 我只是做了一些假设以使这一点更清楚。如果数据集足够相似、可能与另一个数据集重复或完全不同,您需要足够的数据才能得出明确的结论。
    猜你喜欢
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多