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

Tách giá trị từ một trường thành hai trường

Thật không may, MySQL không có chức năng chia chuỗi. Tuy nhiên, bạn có thể tạo chức năng do người dùng xác định cho điều này, chẳng hạn như một trong những mô tả trong bài viết sau:

Với chức năng đó:

DELIMITER $$

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255) DETERMINISTIC
BEGIN 
    RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');
END$$

DELIMITER ;

bạn sẽ có thể tạo truy vấn của mình như sau:

SELECT SPLIT_STR(membername, ' ', 1) as memberfirst,
       SPLIT_STR(membername, ' ', 2) as memberlast
FROM   users;

Nếu bạn không muốn sử dụng hàm do người dùng xác định và bạn không ngại truy vấn dài dòng hơn một chút, bạn cũng có thể làm như sau:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 1), ' ', -1) as memberfirst,
       SUBSTRING_INDEX(SUBSTRING_INDEX(membername, ' ', 2), ' ', -1) as memberlast
FROM   users;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị các giá trị từ bảng cơ sở dữ liệu MySQL bên trong bảng HTML trên trang web

  2. Sử dụng Passport với Sequelize và MySQL

  3. MySQL / MariaDB - sắp xếp theo truy vấn con bên trong

  4. Các hàm toán học MySQL (Danh sách đầy đủ)

  5. (mysql, php) Làm cách nào để lấy giá trị trường auto_increment trước khi chèn dữ liệu?