Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để xóa tất cả các ký tự sau dấu phẩy cuối cùng trong chuỗi?


Để xóa tất cả các ký tự sau dấu phẩy cuối cùng trong chuỗi, bạn có thể sử dụng SUBSTRING_INDEX ().

Nếu bạn không biết vị trí của dấu phẩy cuối cùng, thì bạn cần tìm động dấu phẩy cuối cùng bằng cách sử dụng LENGTH ().

Cú pháp như sau -

 CẬP NHẬT yourTableNameset yourColumnName =SUBSTRING_INDEX (yourColumnName, ',', LENGTH (yourColumnName) - LENGTH (REPLACE (yourColumnName, ',', ''))); 

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

 mysql> tạo bảng RemoveAllCharacters -> (-> Id int NOT NULL AUTO_INCREMENT, -> FullInfo varchar (200), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (1.83 giây)  

Chèn một số bản ghi trong bảng bằng lệnh insert. Truy vấn như sau -

 mysql> chèn vào giá trị RemoveAllCharacters (FullInfo) ('John, Smith, 23,98,4565886'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,23 giây) mysql> chèn vào giá trị RemoveAllCharacters (FullInfo) ('Carol, Taylor , 26,91 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,28 giây) mysql> chèn vào giá trị RemoveAllCharacters (FullInfo) (' David, Miller, 21 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào Giá trị RemoveAllCharacters (FullInfo) ('Robert, Jones, 22,97'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,09 giây) mysql> chèn vào giá trị RemoveAllCharacters (FullInfo) ('Sam, Williams, 27,88,456788,97877' ); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

 mysql> select * từ RemoveAllCharacters; 

Sau đây là kết quả -

 + ---- + --------------------------------- + | Id | FullInfo | + ---- + --------------------------------- + | 1 | John, Smith, 23,98.4565886 || 2 | Carol, Taylor, 26,91 | | 3 | David, Miller, 21 tuổi || 4 | Robert, Jones, 22,97 || 5 | Sam, Williams, 27,88,456788,97877 | + ---- + -------------------------------- - + 5 hàng trong bộ (0,00 giây) 

Sau đây là truy vấn để xóa tất cả các ký tự sau dấu phẩy cuối cùng trong chuỗi -

 mysql> update RemoveAllCharacters -> set FullInfo =SUBSTRING_INDEX (FullInfo, ',', LENGTH (FullInfo) - LENGTH (REPLACE (FullInfo, ',', ''))); Truy vấn OK, 5 hàng bị ảnh hưởng (0,28 giây ) Các hàng phù hợp:5 Đã thay đổi:5 Cảnh báo:0 

Bây giờ hãy kiểm tra tất cả các bản ghi của bảng một lần nữa. Truy vấn như sau -

 mysql> select * từ RemoveAllCharacters; 

Sau đây là kết quả hiển thị các bản ghi không có ký tự sau dấu phẩy cuối cùng:

 + ---- + --------------------------- + | Id | FullInfo | + ---- + --------------------------- + | 1 | John, Smith, 23,98 || 2 | Carol, Taylor, 26 tuổi || 3 | David, Miller || 4 | Robert, Jones, 22 tuổi || 5 | Sam, Williams, 27,88,456788 | + ---- + --------------------------- + 5 hàng trong bộ (0,00 giây)