2012-08-06 61 views
0

更新特定的列多行,请与下面的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) 
+0

看来,你有两个号码在“|”分隔的彩色电话。你想分开两个号码,一个留在手机中,另一个留在phone2中。使用示例/示例编辑将有助于理解问题。 – Shubhansh 2012-08-06 11:17:57

回答

1

试试这个:

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; 
+0

不正确的语法 – 2012-08-06 11:21:20

+0

谢谢@John Totet Woo – Omesh 2012-08-06 11:23:53

+0

感谢它帮助了很多。 – 2012-08-06 11:28:50