我有下面的表来存储用户数据:
例如:
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查询来比较表中的两行并查看哪些列不同?我不需要知道它们实际上有多大不同,只需要知道它们是否包含相同的值。另外,我将只比较选定的列,而不是用户表中的每一列。
7条答案
按热度按时间hi3rlvi21#
这将为用户
x
和用户y
选择不相同的列数:c9x0cxw02#
您还可以使用以下命令:
输出:
实时测试:http://www.sqlfiddle.com/#! 2/840a1/2
kmb7vmvb3#
这是Peter Langs在PHP中的建议的一个延续示例:
xwbd5t1u4#
您可以使用
group by
计算具有相同列的用户数:o75abkj45#
我想,这可能会帮助一些人。查找同名的行并更新新记录和旧记录的日期。这可能是一个条件,您将不得不复制不同国家的新闻项目,并保持与原始日期相同。
更新t在t.标题= t2.标题集t2.创建= t.创建其中t.标题= t2.标题;
lstz6jyr6#
如果另一个Magento开发人员发现他们的方式在这里,这个Q/A的一个具体用途是比较两个地址条目在一个表中。"Magento 1"将把相同的地址在两个唯一的区别是关键
entity_id
列和address_type
列(账单或航运)。已经知道了订单的
entity_id
,使用此命令获取与订单关联的帐单和送货地址ID:SELECT entity_id FROM sales_flat_order_address WHERE parent_id = 3137;
然后查看它们在该顺序下是否不同:
给出输出:
hec6srdp7#
如果要找出表的两行中哪些列具有不同的值,可以使用以下查询:
它将为您提供一个新的SQL查询,您可以运行该查询来查看哪些列在两行之间具有不同的值。