【问题标题】:MySQL update query on a single table with value from joined tableMySQL 对单个表的更新查询,其值来自连接表
【发布时间】:2014-04-28 06:54:10
【问题描述】:

我有两个表名为:

url_alias
product

url_alias TABLE 有以下字段:idquerykeyword

id 是数字,

query 的形式为 "product_id=45"

keyword 的形式为 "product-actual-name-in-url-friendly-manner"

product 表有以下字段:product_idnamelanguage_id

我想要更新url_alias"keyword" 字段,使用我使用mysql REPLACE 函数生成的正确的url 友好字符串并别名为NEW_KEYWORD,但需要从连接自动生成url 友好字符串两张表。

以下查询正确显示了对表的SELECT 查询:

SELECT u.url_alias_id, u.query, u.keyword, p.name, REPLACE( p.name, ' ', '-' ) AS NEW_KEYWORD
FROM url_alias u, product p
WHERE u.query = CONCAT( "product_id=", p.product_id )
AND p.language_id =3  

请使用此查询帮助我进行更新查询

【问题讨论】:

  • 你想在关键字字段中输出什么。
  • 我希望“关键字”字段包含我使用 mysql REPLACE 函数生成的 NEW_KEYWORD 别名值。问题是关键字字段当前包含英文产品的 url 友好名称,即语言 ID 1,但现在我希望它包含另一种语言的产品 url 友好名称,例如德语,其语言 ID 为 3
  • 你那里有一个交叉连接,你确定你得到的结果不多(尤其是正确的)?

标签: mysql join sql-update


【解决方案1】:

试试看:

UPDATE url_alias u 
JOIN product p 
ON u.query = CONCAT( "product_id=", p.product_id ) 
SET u.keyword=REPLACE( p.name, ' ', '-' ) 
WHERE p.language_id =3;

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多