Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách giải nén chuỗi con trong MySQL

Vấn đề:

Bạn muốn trích xuất một chuỗi con từ văn bản trong một cột nhất định.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên web_address với dữ liệu trong các cột idaddress . Chúng tôi muốn xóa ‘www. 'Ở đầu và ‘.com 'Ở cuối mỗi address .

địa chỉ
id
1 www.example.com
2 www.google.com
3 www.learnsql.com

Giải pháp 1:

Để xóa 4 ký tự đầu tiên:

SELECT
SUBSTR(address, 5, LENGTH(address) -4) AS substring
FROM web_address;

Để xóa 4 ký tự cuối cùng:

SELECT
SUBSTR(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

Để xóa 4 ký tự đầu tiên và 4 ký tự cuối cùng:

SELECT
SUBSTR(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Giải pháp 2:

Để xóa 4 ký tự đầu tiên:

SELECT
SUBSTRING(address, 5, LENGTH(address)) AS substring
FROM web_address;

Để xóa 4 ký tự cuối cùng:

SELECT
SUBSTRING(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

Để xóa 4 ký tự đầu tiên và 4 ký tự cuối cùng:

SELECT
SUBSTRING(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Giải pháp 3:

Để xóa tất cả các ký tự trước dấu ‘.’ Thứ hai từ bên phải:

SELECT
SUBSTRING_INDEX(address, '.', -2) AS substring
FROM web_address;

Để xóa tất cả các ký tự sau dấu ‘.’ Thứ hai từ bên trái:

SELECT
SUBSTRING_INDEX(address, '.', 2) AS substring
FROM web_address;

Để xóa tất cả các ký tự sau dấu ‘.’ Thứ hai từ bên trái, sau đó xóa tất cả các ký tự trước dấu ‘.’ Đầu tiên từ bên phải:

SELECT
SUBSTRING_INDEX(
	SUBSTRING_INDEX(address, '.', 2),
	'.',
	-1
) AS substring
FROM web_address;

Kết quả là:

chuỗi con
ví dụ
google
learningql

Thảo luận:

Giải pháp đầu tiên và giải pháp thứ hai đều xóa một số ký tự được chỉ định khỏi văn bản bằng SUBSTR() hoặc SUBSTRING() hàm số. SUBSTR() là từ đồng nghĩa với SUBSTRING() . Cả hai đều yêu cầu chuỗi và vị trí bắt đầu làm đối số. Đối số cuối cùng, xác định số ký tự cần trích xuất, là tùy chọn. Nếu đối số cuối cùng bị bỏ qua, toàn bộ chuỗi (từ điểm bắt đầu) sẽ được trả về.

Trong giải pháp thứ ba, SUBSTRING_INDEX() hàm xóa văn bản trước hoặc sau các ký tự được chỉ định. Nó yêu cầu các đối số là chuỗi, ký tự và bao nhiêu trường hợp của ký tự phải gặp ở nơi bắt đầu trích xuất văn bản.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL kết hợp hai cột và thêm vào một cột mới

  2. Tối đa theo nhóm

  3. MySQL Chèn vào nhiều bảng? (Chuẩn hóa cơ sở dữ liệu?)

  4. MySQL có bỏ qua các giá trị null trên các ràng buộc duy nhất không?

  5. MySQL WHERE TRONG ()