MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana SUBSTRING() Bekerja di MariaDB

Di MariaDB, SUBSTRING() adalah fungsi string bawaan yang mengembalikan substring dari string yang diberikan.

SUBSTRING() membutuhkan setidaknya dua argumen; string, dan posisi untuk mengekstrak substring dari. Ia juga menerima argumen ketiga opsional yang memungkinkan Anda menentukan berapa lama substring seharusnya.

Sintaks

Sintaksnya mengambil bentuk berikut:

SUBSTRING(str,pos), 
SUBSTRING(str FROM pos), 
SUBSTRING(str,pos,len),
SUBSTRING(str FROM pos FOR len)

Dimana str adalah string, pos adalah posisi awal substring, dan len adalah jumlah karakter yang akan diekstrak.

Dua formulir yang menggunakan FROM kata kunci adalah sintaks SQL standar.

Contoh

Berikut ini contoh dasarnya:

SELECT SUBSTRING('Big fat cat', 5);

Hasil:

+-----------------------------+
| SUBSTRING('Big fat cat', 5) |
+-----------------------------+
| fat cat                     |
+-----------------------------+

Berikut adalah contoh yang sama, tetapi menggunakan sintaks SQL standar:

SELECT SUBSTRING('Big fat cat' FROM 5);

Hasil:

+---------------------------------+
| SUBSTRING('Big fat cat' FROM 5) |
+---------------------------------+
| fat cat                         |
+---------------------------------+

Panjang Substring

Berikut adalah contoh yang menentukan panjang substring yang akan diekstrak:

SELECT SUBSTRING('Big fat cat', 5, 3);

Hasil:

+--------------------------------+
| SUBSTRING('Big fat cat', 5, 3) |
+--------------------------------+
| fat                            |
+--------------------------------+

Dan ini dia menggunakan sintaks SQL standar:

SELECT SUBSTRING('Big fat cat' FROM 5 FOR 3);

Hasil:

+---------------------------------------+
| SUBSTRING('Big fat cat' FROM 5 FOR 3) |
+---------------------------------------+
| fat                                   |
+---------------------------------------+

Posisi Negatif

Menentukan nilai negatif untuk posisi menyebabkan posisi awal dihitung mundur dari akhir string:

SELECT SUBSTRING('Big fat cat', -3);

Hasil:

+------------------------------+
| SUBSTRING('Big fat cat', -3) |
+------------------------------+
| cat                          |
+------------------------------+

Posisi negatif juga dapat digunakan saat menggunakan sintaks SQL standar:

SELECT SUBSTRING('Big fat cat' FROM -7 FOR 3);

Hasil:

+----------------------------------------+
| SUBSTRING('Big fat cat' FROM -7 FOR 3) |
+----------------------------------------+
| fat                                    |
+----------------------------------------+

Dalam hal ini saya juga mengatur panjang untuk substring.

Mode Oracle

Saat dalam mode Oracle, posisi awal 0 (nol) diperlakukan sebagai 1 . Namun, posisi awal 1 juga diperlakukan sebagai 1 .

Ini berbeda dengan mode lain, di mana 0 akan mengembalikan string kosong.

Contoh:

SET SQL_MODE=ORACLE;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Hasil:

+-------------+-------------+
| 0           | 1           |
+-------------+-------------+
| Big fat cat | Big fat cat |
+-------------+-------------+

Ini dia dalam mode default:

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTRING('Big fat cat', 0) AS "0",
    SUBSTRING('Big fat cat', 1) AS "1";

Hasil:

+------+-------------+
| 0    | 1           |
+------+-------------+
|      | Big fat cat |
+------+-------------+

Argumen Null

Jika salah satu (atau semua) argumen adalah null , SUBSTRING() fungsi mengembalikan null :

SELECT 
    SUBSTRING(null, 3, 3),
    SUBSTRING('Coffee', null, 3),
    SUBSTRING('Coffee', 3, null),
    SUBSTRING(null, null, null);

Hasil:

+-----------------------+------------------------------+------------------------------+-----------------------------+
| SUBSTRING(null, 3, 3) | SUBSTRING('Coffee', null, 3) | SUBSTRING('Coffee', 3, null) | SUBSTRING(null, null, null) |
+-----------------------+------------------------------+------------------------------+-----------------------------+
| NULL                  | NULL                         | NULL                         | NULL                        |
+-----------------------+------------------------------+------------------------------+-----------------------------+

Argumen Tidak Ada

Memanggil SUBSTRING() tanpa meneruskan argumen apa pun menghasilkan kesalahan:

SELECT SUBSTRING();

Hasil:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Melakukan Perubahan Skema di MySQL &MariaDB dengan Cara yang Aman

  2. Cara Mengonversi ke Huruf Besar di MariaDB

  3. Bagaimana MOD() Bekerja di MariaDB

  4. Membandingkan Pemulihan Point-in-Time Amazon RDS dengan ClusterControl

  5. Opsi Failover Cluster Basis Data Lengkap Multi-Cloud untuk Cluster MariaDB