是一种比较同一个表中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并使用通配符。
答案 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;