2

テーブルにタグIDを1|5|10として格納する列があります

mysqlクエリを使用して列を分解したい

4

2 に答える 2

5

おそらくやりたいことは、タグ ID をこのように保存しないことです。それらのために別のテーブルを作成すると、問題は自然に消えます。

これは正規化と呼ばれます。

于 2010-12-03T05:21:12.790 に答える
2

SUBSTRING_INDEXをチェーンして爆発効果を達成することはできますが、Kosが提案しているように、これはデータベースの正規化に対する恐ろしい解決策であることを思い出させてください。

中央の列(#| 5 |#)に5が含まれるすべてのMySQLエントリを選択しようとした場合は、次のクエリを使用します。

SELECT * FROM table WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(table.field, '|', 2), '|', -1) = 5

@Everyone:これは恐ろしい解決策なので、使用する予定はありません。ただし、データベーススキーマの詳細な検査が行われるまで、このようなクイックワンライナーを使用する必要がある状況にある場合があります。

于 2011-02-10T07:35:15.390 に答える