mysql - 如何使用子查询更新特定列多行

标签 mysql

请帮助我解决以下 mysql 查询, 我有一个主表,如下所示:

id      phone                phone2 
======================================
1       98998 | 58877
2       98998 | 58877
3       98998

我想通过电话列更新phone2并尝试使用以下子查询,但我没有得到所需的结果,如果可能的话请帮助获得结果:

update main a 
set a.phone2 = (SELECT substring_index(b.phone,'|',-1) 
                FROM main b 
where b.phone like '%|%' and where a.id=b.id) 

最佳答案

试试这个:

UPDATE main a 
    INNER JOIN (SELECT id, substring_index(phone,'|',-1) AS phone
                FROM main 
                WHERE phone LIKE '%|%' 
        ) b
        ON a.id = b.id
SET a.phone2 = b.phone;

关于mysql - 如何使用子查询更新特定列多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827145/

相关文章:

php - MySQL查询按父子位置排序

python - Django、Python、Mysql

php - 将 sql 与当前登录用户相加

java - 使用外部库 mysql-connector-java-5.1.24-bin.jar 在 Unix 上编译 Java 项目

javascript - 将多维数组从mysql传输到php再到javascript

mysql - 如何计算2列的记录数

php - 如何在 MySQL 中进行文本挖掘以查找相似文本中的出处

java - JPA - 使用 CriteriaQuery 的 LIKE 过滤 MySQL DOUBLE (6,2)

c# - C# 中的 LocalReports 导致 Microsoft.Reporting.WinForms.LocalProcessingException

mysql - 如何从mysql中的函数获取多个元组输出