mysql - 使用 MySql 条件在表之间传递值

标签 mysql

我希望在 MySql 中执行此语句,仅当该值不同于 0 时,我才需要从表domains 列 webId 传递该值,如果是这样,我需要它将该值复制到表customers 列referwebId 中。下面的代码给了我错误:字段列表中的未知表“域”.. 怎么了? 谢谢

BEGIN

if domains.webId NOT LIKE '0' then
insert into customers (referWebId) select
webId from domains;

END IF;

END

最佳答案

为什么不做这样的事情

insert into customers (referWebId) 
select webId from domains
where webId NOT LIKE '0';

根据您发布的代码,您不能简单地这样检查

if domains.webId NOT LIKE '0' then

而是使用INSERT ... ON DUPLICATE KEY UPDATE 像下面这样

insert into customers (referWebId) 
select webId from domains where webId NOT LIKE '0'
on duplicate key update referWebId = values(referWebId);

关于mysql - 使用 MySql 条件在表之间传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24498586/

相关文章:

php - 为什么 MYSQL 中的空格会破坏 PHP 创建的 JSON?

php - 无法上传 joomla 模板

PHP 数据库查询而不是使用 0 和 1 使用 true 或 false/paid 或 unpaid

mysql - 将大型分隔文件导入 MySQL 表并添加新标识符

php - 如何从 mysql 检索 html 中断

mysql - ORDER BY 具有特定值的优先级

mysql - SQL - 使用 UNION 的优先级

mysql - 如果最小值的状态等于特定值,如何选择最小值?

mysql - TypeORM/MySQL - 拦截更新/插入查询并在 'editedBy' 列上自动设置应用程序用户 ID

MySQL表分割