MySQL Tutorial/String Functions/SUBSTRING
Содержание
- 1 SUBSTRING("ABCDEFGHIJK", -3);
- 2 SUBSTRING("ABCDEFGHIJK",;
- 3 SUBSTRING("ABCDEFGHIJK",5,6);
- 4 SUBSTRING("ABCDEFGHIJK" FROM 4);
- 5 SUBSTRING("ABCDEFGHIJK" FROM -4 FOR 2);
- 6 SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)
- 7 Use SUBSTRING with data in a table
SUBSTRING("ABCDEFGHIJK", -3);
mysql>
mysql> SELECT SUBSTRING("ABCDEFGHIJK", -3);
+------------------------------+
| SUBSTRING("ABCDEFGHIJK", -3) |
+------------------------------+
| IJK |
+------------------------------+
1 row in set (0.00 sec)
mysql>
SUBSTRING("ABCDEFGHIJK",;
mysql>
mysql> SELECT SUBSTRING("ABCDEFGHIJK", -5, 3);
+---------------------------------+
| SUBSTRING("ABCDEFGHIJK", -5, 3) |
+---------------------------------+
| GHI |
+---------------------------------+
1 row in set (0.00 sec)
mysql>
SUBSTRING("ABCDEFGHIJK",5,6);
mysql>
mysql> SELECT SUBSTRING("ABCDEFGHIJK",5,6);
+------------------------------+
| SUBSTRING("ABCDEFGHIJK",5,6) |
+------------------------------+
| EFGHIJ |
+------------------------------+
1 row in set (0.00 sec)
mysql>
SUBSTRING("ABCDEFGHIJK" FROM 4);
mysql>
mysql>
mysql> SELECT SUBSTRING("ABCDEFGHIJK" FROM 4);
+---------------------------------+
| SUBSTRING("ABCDEFGHIJK" FROM 4) |
+---------------------------------+
| DEFGHIJK |
+---------------------------------+
1 row in set (0.00 sec)
mysql>
SUBSTRING("ABCDEFGHIJK" FROM -4 FOR 2);
mysql>
mysql>
mysql> SELECT SUBSTRING("ABCDEFGHIJK" FROM -4 FOR 2);
+----------------------------------------+
| SUBSTRING("ABCDEFGHIJK" FROM -4 FOR 2) |
+----------------------------------------+
| HI |
+----------------------------------------+
1 row in set (0.00 sec)
mysql>
SUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len), SUBSTRING(str FROM pos FOR len)
The forms without a len argument return a substring from string str starting at position pos.
The forms with a len argument return a substring len characters long from string str, starting at position pos.
If pos is a negative value, the beginning of the substring is from the end of the string.
The position of the first character is reckoned as 1.
If len is less than 1, the result is the empty string.
SUBSTR() is a synonym for SUBSTRING().
MID(str,pos,len) is a synonym for SUBSTRING(str,pos,len).
mysql> SELECT SUBSTRING("ABCDEFGHIJK",5);
+----------------------------+
| SUBSTRING("ABCDEFGHIJK",5) |
+----------------------------+
| EFGHIJK |
+----------------------------+
1 row in set (0.00 sec)
mysql>
Use SUBSTRING with data in a table
mysql>
mysql> CREATE TABLE Employee(
-> id int,
-> first_name VARCHAR(15),
-> last_name VARCHAR(15),
-> start_date DATE,
-> end_date DATE,
-> salary FLOAT(8,2),
-> city VARCHAR(10),
-> description VARCHAR(15)
-> );
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values (1,"Jason", "Martin", "19960725", "20060725", 1234.56, "Toronto", "Programmer");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(2,"Alison", "Mathews", "19760321", "19860221", 6661.78, "Vancouver","Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(3,"James", "Smith", "19781212", "19900315", 6544.78, "Vancouver","Tester");
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(4,"Celia", "Rice", "19821024", "19990421", 2344.78, "Vancouver","Manager");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(5,"Robert", "Black", "19840115", "19980808", 2334.78, "Vancouver","Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(6,"Linda", "Green", "19870730", "19960104", 4322.78,"New York", "Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(7,"David", "Larry", "19901231", "19980212", 7897.78,"New York", "Manager");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(8,"James", "Cat", "19960917", "20020415", 1232.78,"Vancouver", "Tester");
Query OK, 1 row affected (0.02 sec)
mysql>
mysql> select * from Employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id | first_name | last_name | start_date | end_date | salary | city | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer |
| 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester |
| 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester |
| 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager |
| 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester |
| 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester |
| 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager |
| 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)
mysql>
mysql>
mysql> SELECT SUBSTRING(first_name,5)
-> FROM employee;
+-------------------------+
| SUBSTRING(first_name,5) |
+-------------------------+
| n |
| on |
| s |
| a |
| rt |
| a |
| d |
| s |
+-------------------------+
8 rows in set (0.02 sec)
mysql>
mysql>
mysql> drop table Employee;
Query OK, 0 rows affected (0.00 sec)
mysql>