Raktentester: Teile einer Spalte in mysql löschen / Update mit regex

Beitrag lesen

1.)

SELECT SUBSTRING_INDEX('www.mytestpage.info','.',2) as RET;

Gibt zurück:

+----------------+
| RET            |
+----------------+
| www.mytestpage |
+----------------+
1 row in set (0.000 sec)

2.)

Das willst Du aber nicht, Du willst wahrscheinlich den zweiten Teil:

~~~sql
SELECT SUBSTRING_INDEX('www.mytestpage.info','.',-2) as RET;

Gibt zurück:

+-----------------+
| RET             |
+-----------------+
| mytestpage.info |
+-----------------+
1 row in set (0.000 sec)

3.) Was passiert, wenn der Trenner nicht vorhanden ist?

SELECT SUBSTRING_INDEX('www.mytestpage.info',' ',-2) as RET;
+---------------------+
| RET                 |
+---------------------+
| www.mytestpage.info |
+---------------------+
1 row in set (0.000 sec)

Das ist also der ganze String.

4.) Testen wir mit Deinem Zeug:

SELECT SUBSTRING_INDEX('ABC 123',' ',1) as RET1, SUBSTRING_INDEX('ABC 123',' ',-1) as RET2;

liefert:

+------+------+
| RET1 | RET2 |
+------+------+
| ABC  | 123  |
+------+------+
1 row in set (0.000 sec)

und, wenn es den Delimiter nicht gibt:

SELECT SUBSTRING_INDEX('ABC123',' ',1) as RET1, SUBSTRING_INDEX('ABC123',' ',-1) as RET2;

kommt halt das hier:

+--------+--------+
| RET1   | RET2   |
+--------+--------+
| ABC123 | ABC123 |
+--------+--------+