mysql> select description from devices where id=172;
+--------------------------------------------------------------------------------+
| description |
+--------------------------------------------------------------------------------+
| Fault: 'HYD OIL TEMP HIGH' from 'Controller' of type 'SYSTEM' with code '1003' |
+--------------------------------------------------------------------------------+
1 row in set (0.01 sec)
上記は、データベースにレコードがあるパターンです。レポートを実行するためだけに、このように複数の列に分割しようとしています。
+---------+------------------------+--------------+---------+---------+
| status | description | device | system | code |
+---------+------------------------+--------------+---------+---------+
| Fault | HYD HYD OIL TEMP HIGH | controller | SYSTEM | 1003 |
+---------+------------------------+--------------+---------+---------+
私がやっている上記のことはもっと悪いことを知っています。1 回限りのレポートを実行するための ETL を変更したくありません。これは私が試したものです。
mysql> select substr(description, 1, locate(":", description)-1) as status from devices where id=172;
+--------+
| status |
+--------+
| Fault |
+--------+
1 row in set (0.00 sec)
データベースは amazon RDS 上にあります。したがって、lib_mysqludf_pregは使用できません。単純な SQL しか実行できません。助けていただければ幸いです。ありがとう。