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

MariaDB SUBSTR() Dijelaskan

Di MariaDB, SUBSTR() adalah sinonim untuk SUBSTRING() .

Ini adalah fungsi string bawaan yang mengembalikan substring dari string tertentu.

Ini 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:

SUBSTR(str,pos), 
SUBSTR(str FROM pos), 
SUBSTR(str,pos,len),
SUBSTR(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 SUBSTR('Good doggy', 6);

Hasil:

+-------------------------+
| SUBSTR('Good doggy', 6) |
+-------------------------+
| doggy                   |
+-------------------------+

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

SELECT SUBSTR('Good doggy' FROM 6);

Hasil:

+-----------------------------+
| SUBSTR('Good doggy' FROM 6) |
+-----------------------------+
| doggy                       |
+-----------------------------+

Panjang Substring

Berikut adalah contoh yang menentukan panjang substring yang akan diekstrak:

SELECT SUBSTR('Good doggy', 6, 3);

Hasil:

+----------------------------+
| SUBSTR('Good doggy', 6, 3) |
+----------------------------+
| dog                        |
+----------------------------+

Dan ini dia menggunakan sintaks SQL standar:

SELECT SUBSTR('Good doggy' FROM 6 FOR 3);

Hasil:

+-----------------------------------+
| SUBSTR('Good doggy' FROM 6 FOR 3) |
+-----------------------------------+
| dog                               |
+-----------------------------------+

Posisi Negatif

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

SELECT SUBSTR('Good doggy', -5);

Hasil:

+--------------------------+
| SUBSTR('Good doggy', -5) |
+--------------------------+
| doggy                    |
+--------------------------+

Posisi negatif juga dapat digunakan saat menggunakan sintaks SQL standar:

SELECT SUBSTR('Good doggy' FROM -5 FOR 3);

Hasil:

+------------------------------------+
| SUBSTR('Good doggy' FROM -5 FOR 3) |
+------------------------------------+
| dog                                |
+------------------------------------+

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 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Hasil:

+------------+------------+
| 0          | 1          |
+------------+------------+
| Good doggy | Good doggy |
+------------+------------+

Ini dia dalam mode default:

SET SQL_MODE=DEFAULT;
SELECT 
    SUBSTR('Good doggy', 0) AS "0",
    SUBSTR('Good doggy', 1) AS "1";

Hasil:

+------+------------+
| 0    | 1          |
+------+------------+
|      | Good doggy |
+------+------------+

Argumen Null

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

SELECT 
    SUBSTR(null, 3, 3),
    SUBSTR('Doggy', null, 3),
    SUBSTR('Doggy', 3, null),
    SUBSTR(null, null, null);

Hasil:

+--------------------+--------------------------+--------------------------+--------------------------+
| SUBSTR(null, 3, 3) | SUBSTR('Doggy', null, 3) | SUBSTR('Doggy', 3, null) | SUBSTR(null, null, null) |
+--------------------+--------------------------+--------------------------+--------------------------+
| NULL               | NULL                     | NULL                     | NULL                     |
+--------------------+--------------------------+--------------------------+--------------------------+

Argumen Tidak Ada

Memanggil SUBSTR() tanpa memberikan argumen apa pun menghasilkan kesalahan:

SELECT SUBSTR();

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. ClusterControl:Pengantar Monitor Kueri Baru

  2. Memperkenalkan MariaDB Platform X5:database beban kerja apa pun, sekarang dalam skala apa pun

  3. Bagaimana RIGHT() Bekerja di MariaDB

  4. Konektor MariaDB/Python Beta Sekarang Tersedia

  5. Cara Menginstal MariaDB 10 di RHEL 8