2011-12-05 7 views
6

Tôi có bảng có hai cột và tôi cần phải nối hai cột này và cập nhật cột đầu tiên với kết quả.
Ví dụ giả định này là bàn của tôi:Concat hai cột bảng và cập nhật một với kết quả

+----+-------+-------+ 
| id | col1 | col2 | 
+----+-------+-------+ 
| 1 | text1 | text2 | 
+----+-------+-------+ 
| 2 | text3 | text4 | 
+----+-------+-------+ 

sau khi nối bàn của tôi nên là:

+----+-------------+-------+ 
| id | col1  | col2 | 
+----+-------------+-------+ 
| 1 | text1.text2 | text2 | 
+----+-------------+-------+ 
| 2 | text3.text4 | text4 | 
+----+-------------+-------+ 

Làm thế nào tôi có thể làm điều này sử dụng SQL?

Trả lời

13

Hãy thử điều này (đối với MySQL)

UPDATE your_table 
SET col1 = CONCAT_WS('.', col1, col2) 

và điều này cho MS-SQL

UPDATE your_table 
SET col1 =col1 || "." || col2 
3

bài tập về nhà?

tôi asume mysql:

update table t 
set col1 = concat(col1, '.', col2) 
+0

Không nó không phải là một bài tập về nhà! Tôi tạo ra bảng của tôi và sau khi chèn rất nhiều dữ liệu tôi hiểu hai cột nên được lưu trữ với nhau. Cảm ơn – RYN

+1

Ngay cả khi đó là bài tập về nhà ... đây là điều mà một nhà phát triển thực hiện ... 30% thời gian trên Google, 30% trên SO, 30% thực hiện, 10% trả lời nhận xét về lý do không phải là bài tập về nhà. – Armstrongest

+3

@Armstrongest, bạn bỏ lỡ 5% coffe uống. Chúng tôi liên lạc. Cảm ơn về bình luận của bạn. – danihp

2

với MS SQL Server 2014 tôi đã sử dụng nó như thế này

UPDATE CANDIDATES 
SET NEW_ADDRESS_EN = CANDI_HOME_NO + ', ' + 
CANDI_VILLAGE + ', ' + CANDI_ROAD + ' Road, ' + CANDI_PROVINCE