【发布时间】:2013-08-16 20:52:49
【问题描述】:
我需要比较同一个 mysql magento 表中的记录。有没有办法通过比较 url_key 和 url 来比较同一张表中的 2 条记录?我在下面发布了与我正在寻找的信息相对应的信息。
我希望这也能帮助其他在 Magento 数据库上工作的人,因为我已经发布了我之前的 2 个关于如何比较 2 个 mysql 表以确保为 magento 中的类别创建记录的查询。我发现如果 url-keys 和 url 不匹配,Magento 将无法运行平面文件重新索引。我进行了一些检查,以确保我的 url 在我的 catalog_category_entity_varchar 表和 core_url_rewrite 表中都是正确的。我最初跑了:
选择 *
来自catalog_category_entity_varcharc2t
不存在的地方(
选择 *
来自core_url_rewritec
WHERE c.category_id = c2t.entity_id
)
确保我们所有的类别也都输入到 core_url 重写中。然后我运行另一个查询以确保两个表中的所有 url 都匹配:
选择 *
来自core_url_rewritec
不存在的地方(
选择 *
来自catalog_category_entity_varchar c2t
在哪里 c2t.entity_id = c.category_id
和 c2t.value = c.request_path
)
现在我想再运行一个查询,以确保 catalog_category_entity_varchar 上的 url 也与其对应的 url 键正确,但我完全卡在它上面,不知道如何编写语句。
catalog_category_entity_varchar 表基本上如下所示:
catalog_category_entity_varchar:
记录 1:
value_id: 68
entity_type_id: 3
属性 ID: 43
store_id: 0
entity_id: 10
价值: 则
记录 2:
value_id: 73
entity_type_id: 3
属性 ID: 57
store_id: 0
entity_id: 10
值: shop-by.html
两个记录的 entity_id 均为 10。 url_key 的属性 ID 是 43,而 url ID 是 57。我想这些是我需要用来识别我正在比较的内容。
所以基本上我需要运行一个查询,将实体 id 相互匹配,然后将 url-key 与 url itslef 进行比较,以确保它包含 url 键。它将必须剥离 .html 以及 url 代码的任何其他部分,因为比第一级更深的记录看起来像 catalog/shirts/shop-by.html。
记录 3:
value_id: 637
entity_type_id: 3
属性 ID: 57
store_id: 0
entity_id: 88
值: catalog/shirts/shop-by.html
此外,也会有记录包含此 URL-Key,但我假设由于查询将基于其主键 (entity_id),我们不必担心。
如果我没有以正确的格式写这篇文章,我深表歉意,因为我还是这个论坛的新手。我提前感谢您的帮助。如果有任何不清楚或需要更多信息,请告诉我。
【问题讨论】:
-
啊,好吧,通常在这里你会以问题的形式来表达它,然后如果你愿意,你可以勾选“回答我自己的问题”(它在“发布你的问题”按钮下) 并以这种方式回答自己。如果您键入答案作为您的问题,则无法接受。所以基本上,将您的帖子编辑为一个问题,然后在下面发布您的答案。
-
谢谢杰森,我不太清楚你的意思。我改写了上面的问题,但是当我编辑时,没有复选框来回答我自己的问题,就像你最初输入问题时那样。我在上面输入的 2 个 sql 查询是我之前所做的,但不是我现在正在研究的。
-
抱歉,按钮现在在我下方,在“认识可以回答的人吗?”之后。是黑灰色的按钮,上面写着“回答你的问题”;D。编辑您的问题,完成后您可以从这里回答
-
也许我真的很困惑。我明白你在说什么,但是如果我不知道答案,我会用什么来回答这个问题?哈哈
-
我觉得是我糊涂了,慢慢重读才看到你的问题。看起来你已经想通了。似乎您正朝着正确的方向前进,尽管我不擅长查询。通过一些研究,我也许可以通过 Magento 的 php 框架向您展示如何做到这一点。您可能想在编辑模式下玩耍,查看编辑帮助和问题发布指南以重组您的问题,使其更加突出:D
标签: mysql magento compare records