MySQL 中的 RIGHT()函数
MySQL 中的RIGHT ()函数用于从给定字符串的右侧提取指定数量的字符。第二个参数用于决定它应该返回多少个字符。
句法 :
RIGHT( str, len )
参数:此函数接受两个参数,如上所述,如下所述:
- str :要从其右侧提取多个字符的给定字符串。
- len :要提取的字符数。如果此参数大于字符串中的字符数,则此函数将返回实际字符串。
返回:它从一个字符串中返回一些字符(从右开始)。
示例 1:将 RIGHT()函数应用于给定的字符串。
SELECT RIGHT("geeksforgeeks", 4) AS Right_Str;
输出 :
Right_Str |
---|
eeks |
示例 2:将 RIGHT()函数应用于数字。
SELECT RIGHT(12345678, 4) AS Right_Num;
输出 :
Right_Num |
---|
5678 |
示例 3:当 len > 字符串中的字符时,将 RIGHT()函数应用于给定的字符串。
SELECT RIGHT("geeksforgeeks", 20) AS Right_Str;
输出 :
Right_Str |
---|
geeksforgeeks |
示例 4:应用 RIGHT()函数在表中查找玩家的姓氏。为了演示创建一个名为Player的表。
CREATE TABLE Player(
Player_id INT AUTO_INCREMENT,
Player_name VARCHAR(100) NOT NULL,
Playing_team VARCHAR(20) NOT NULL,
PRIMARY KEY(Player_id )
);
现在,将一些数据插入 Player 表中:
INSERT INTO
Player(Player_name, Playing_team)
VALUES
('Virat Kohli', 'RCB' ),
('Rohit Sharma', 'MI' ),
('Dinesh Karthik', 'KKR' ),
('Shreyash Iyer', 'DC' ),
('David Warner', 'SRH' ),
('Steve Smith', 'RR' ),
('Andre Russell', 'KKR' ),
('Jasprit Bumrah', 'MI' ),
('Risabh Panth', 'DC' ) ;
所以,玩家表是:
mysql> SELECT * FROM Player;
+-----------+----------------+--------------+
| Player_id | Player_name | Playing_team |
+-----------+----------------+--------------+
| 1 | Virat Kohli | RCB |
| 2 | Rohit Sharma | MI |
| 3 | Dinesh Karthik | KKR |
| 4 | Shreyash Iyer | DC |
| 5 | David Warner | SRH |
| 6 | Steve Smith | RR |
| 7 | Andre Russell | KKR |
| 8 | Jasprit Bumrah | MI |
| 9 | Risabh Panth | DC |
+-----------+----------------+--------------+
现在我们将找到每个玩家的姓氏,要找到我们必须应用以下方法的姓氏 -
- 首先,使用INSTR ()函数查找Name中空格()的位置。
- 其次,使用LENGTH ()函数查找玩家名字的长度。这里 RIGHT函数的 'len' 将是 Player_name 的长度减去 ' '(空格)字符的位置。
- 第三,使用RIGHT ( )函数提取玩家的姓氏。
SELECT
Player_name,
RIGHT(Player_name, LENGTH(Player_name) - INSTR(Player_name, ' ')) Lastname,
Playing_team
FROM
Player;
输出 :
+----------------+----------+--------------+
| Player_name | Lastname | Playing_team |
+----------------+----------+--------------+
| Virat Kohli | Kohli | RCB |
| Rohit Sharma | Sharma | MI |
| Dinesh Karthik | Karthik | KKR |
| Shreyash Iyer | Iyer | DC |
| David Warner | Warner | SRH |
| Steve Smith | Smith | RR |
| Andre Russell | Russell | KKR |
| Jasprit Bumrah | Bumrah | MI |
| Risabh Panth | Panth | DC |
+----------------+----------+--------------+