3

正規表現に関するmysqlのドキュメントを読みましたが、正規表現はクエリ内の行を一致させるためのフィルターとしてのみ使用できるようです。WHERESELECT

正規表現の一致を列として抽出できるかどうか疑問に思っています。たとえば、私のテーブルに次の SKU テキストフィールドがある場合:

+----------------+--------------+---------------+
|sku             | product_name | [other fields]|
+----------------+--------------+---------------+
|ART-2830--107-70| Foo          |               |
|ART-2832--115-6 | Bar          |               |
+----------------+--------------+---------------+

(ART-)([0-9]+)(--)([0-9]+)(-)([0-9]+)出力として私に与える正規表現に一致する選択クエリを起動するのは素晴らしいことです:

+------+------------+-------+----------+
| type | collection | model | material |
+------+------------+-------+----------+
| ART  | 2830       | 107   | 70       |
| ART  | 2832       | 115   | 6        |
+------+------------+-------+----------+

type, collection, model and material私のテーブルには列が存在せず、上記の正規表現に一致するだけであることに注意してください。

これは可能ですか?

ps:必要なプロパティごとに列を追加してそのテーブルを正規化するのは素晴らしいアイデアだと思いますが、これは私が作業しなければならない構造であり、現時点では編集できません。

EDIT誰かがこれを必要とする場合に備えて、PostgreSqlがこの機能を提供していることを見ました。

4

2 に答える 2