gpt4 book ai didi

mysql - SQL 比较表中的两行以找出有多少值不同

转载 作者:可可西里 更新时间:2023-11-01 07:13:47 26 4
gpt4 key购买 nike

我有下表用于存储用户数据:

例如

TABLE: users
COLUMNS:
...
maritalStatus (INT) - FK
gender (CHAR)
occupation (INT) - FK
...

现在我想比较这个表中的两个用户,看看有多少列与任何两个给定用户(比如用户 X 和用户 Y)匹配

我通过 mySQL 存储过程分别获取每个值然后比较它们

例如

    SELECT maritalStatus from users where userID = X INTO myVar1;
SELECT maritalStatus from users where userID = Y INTO myVar2;

IF myVar1 = myVar2 THEN

...

END IF;

有没有更短的使用 SQL 查询的方法,我可以比较表中的两行并查看哪些列不同?我不需要知道它们到底有多少不同,只是需要知道它们是否包含相同的值。我也只会比较选定的列,不是用户表中的每一列。

最佳答案

这将为用户 x 和用户 y 选择相同的列数:

SELECT ( u1.martialStatus <> u2.martialStatus )
+ ( u1.gender <> u2.gender )
+ ( u1.occupation <> u2.occupation )
FROM
users u1,
users u2
WHERE u1.id = x
AND u2.id = y

关于mysql - SQL 比较表中的两行以找出有多少值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com