如何比较来自同一MySQL表的2条记录

时间:2013-08-16 22:50:05

标签: mysql compare

是一种比较同一个表中2条记录的方法吗?我已经比较了两个表,以确保我的记录使用

准确
SELECT * 
FROM `catalog_category_entity_varchar` c2t
WHERE NOT EXISTS (
    SELECT * 
    FROM `core_url_rewrite` c 
    WHERE c.category_id = c2t.entity_id
)

现在我想尝试比较catalog_category_entity_varchar中的记录是否存在任何不一致。这是我的两个记录的一个例子。

catalog_category_entity_varchar:

记录1:
value_id:68
entity_type_id:3
attribute_id:43
STORE_ID:0
ENTITY_ID:10
值:店铺由

记录2:
value_id:73
entity_type_id:3
attribute_id:57
STORE_ID:0
ENTITY_ID:10
值:店铺by.html

entity_id是唯一的标识符。我必须比较url key(attribute_id = 43)的值和url的值,即attribute_id 57.我假设我必须使用通配符%after,这将删除.html,而另一个之前,将删除部分任何2级以上类别网址的网址(例如catalog / shirts / shop-by.html)。

如果它更容易我可以复制表和我的初始比较语句,我只需要知道如何修改查询以匹配属性ID并使用通配符。

1 个答案:

答案 0 :(得分:0)

我不确定这会做你想做的一切,但我认为这可能是朝着正确方向迈出的一步。它将记录与43属性与57属性进行比较,并查看43记录的值字段是否不在57记录的值字段中。

SELECT  *

FROM    catalog_category_entity_varchar t1

        JOIN catalog_category_entity_varchar t2
        ON t1.entity_id = t2.entity_id
        AND t2.attribute_id = 57

WHERE   t1.attribute_id = 43
        AND INSTR(t2.value, t1.value) = 0;