我一直在阅读并尝试我遇到的所有事情来解决我的问题。我有一个数据库表,我需要使用"编辑"中的值进行更新。 克隆的原文。
我首先尝试更新"该表但发现更新添加的条目到表不编辑已经存在的内容。我考虑过手动编辑,但有太多......我已经尝试过在phpmyadmin导入中设置的所有可能的组合......
场景:在共享主机上,使用phpmyadmin。表名= mailstudio表我想更新=潜在客户。具有更新/编辑值的表= clean_leads
需要更新的表格:jd_leads 有近100列,所以我只是在这里缩写:
1 id int(11) No None AUTO_INCREMENT
2 owner_id int(11) Yes NULL
3 is_published tinyint(1) No None
4 date_added datetime Yes NULL
表(clean_leads),包含我需要进入潜在客户表的编辑信息。
1 "id" varchar(7) utf8_general_ci No
2 "owner_id" varchar(10) utf8_general_ci Yes NULL
3 "is_published" varchar(3) utf8_general_ci Yes NULL
4 "date_added" varchar(21) utf8_general_ci Yes NULL
SQL Query我正在尝试运行。
UPDATE jd_leads
INNER JOIN clean_leads ON jd_leads.is_published = clean_leads.is_published
SET jd_leads.id=IF(clean_leads.id > 0, clean_leads.id, jd_leads.id)
WHERE clean_leads.id > is_published=0
这种格式似乎应该可以工作,但它会引发这些错误:
我还试图反转逻辑并将未经编辑的数据放入新表中,除了错误是jd_leads.id之外,我得到的是相同的错误。
我已经阅读了关于这些错误我可以找到的每个线程,但这个nube无法弄明白。我现在已经在这里待了几天而且非常沮丧。任何帮助将不胜感激。
谢谢你,
答案 0 :(得分:0)
我认为语法总是:
update some_table set some_column = some_value where some_condition;
如果你想加入某些东西,你需要添加一个FROM子句。在你的情况下:
UPDATE jd
SET jd.id=IF(cl.id > 0, cl.id, jd.id)
FROM
jd_leads jd
INNER JOIN clean_leads cl ON jd.is_published = cl.is_published
WHERE cl.id > jd.is_published=0 **(make sure to check this line here, because I don't know what table you referred)**
答案 1 :(得分:0)
最后一行有一些时髦的东西:
UPDATE jd_leads
INNER JOIN clean_leads ON jd_leads.is_published = clean_leads.is_published
SET jd_leads.id=IF(clean_leads.id > 0, clean_leads.id, jd_leads.id)
WHERE clean_leads.id > 0
AND jd_leads.is_published=0 /* Split from the line above */