2008-10-01 20 views
13

Tôi có bảng người dùng có cột tên người dùng bao gồm số có sáu chữ số, ví dụ: 675381, tôi cần phải thêm một số không vào mỗi tên người dùng này, ví dụ: 0675381 sẽ là kết quả cuối cùng của ví dụ trước, có truy vấn nào có thể xử lý điều này không?Truy vấn MySQL để thêm ký tự vào mỗi mục nhập

Trả lời

27
UPDATE Tablename SET Username = Concat('0', Username); 
+0

Cảm ơn, người dùng brian đã nhận nó đầu tiên nhưng tôi nên nói thêm trước thay vì nối thêm, có vẻ như anh ấy đã xóa bài đăng của mình ngay bây giờ! Chúc mừng. – Stuart

+1

bạn cung cấp một ví dụ: 675381 nên trở thành 0675381 – daniels

4

loại cột nào?

nếu đó là kiểu chuỗi, hãy thử một cái gì đó như thế này:

UPDATE your_table SET column_name=concat('0',column_name); 
+0

Cảm ơn, daniels chỉ là một chút wee nhanh hơn. – Stuart

1

Bạn có nghĩa là "thêm vào trước"? tức là thêm nó ở phía trước?

Là cột số? Bạn có luôn luôn muốn 7 ký tự đầu ra?

Giả sử rằng, một cái gì đó như thế này sẽ làm việc cho một truy vấn:

select LPAD(CONVERT(username, CHAR), 7, '0') 

Nếu cột là ký tự, phần CONVERT() là không cần thiết, chỉ cần LPAD tên người dùng.

Nếu bạn muốn sửa đổi vĩnh viễn giá trị trong bảng, bạn sẽ cần đảm bảo cột là loại ký tự và CẬP NHẬT bằng cách sử dụng ở trên.

+0

Vâng, tôi có nghĩa là prepend, nó chỉ là một varchar vì vậy giải pháp daniels là hoàn hảo. Cảm ơn. – Stuart

0

Bạn có thể muốn sử dụng CONCAT_WS ('', '0', Tên người dùng) vì nếu có giá trị rỗng, thì bạn sẽ kết thúc bằng NULL thay vì '0'. Điều này có lẽ không phải là một vấn đề, nhưng một cái gì đó tôi đã học được cách khó khăn.

Các vấn đề liên quan