MySQL は区切り文字を使用してフィールドを分割します。つまり、1 つの行を複数の行に変換します。

1. テーブルの元のデータは次のとおりです。

SELECT id,warehouse_ids FROM `test` ORDER BYwarehouse_ids DESC LIMIT 1

2. カンマに基づいてクエリを分割します。

知らせ

1. 区切り文字は対応する文字に置き換える必要があります。ここではカンマ (,) にします。

2. JOIN のユーザー テーブルはデータベース内のテーブルです。その主な目的は自動インクリメント ID を使用することです。自動インクリメント ID は 1 から連続して開始する必要があります (1、2、3...)。

3. 通常、user の代わりに mysql.help_topic テーブルが使用されますが、このテーブルには権限がないため、代わりに user が使用されます。

SELECT 
	t.id AS 'id', 
	substring_index( substring_index( t.warehouse_ids, ',', h.id ), ',',- 1 ) AS 'warehouse_id' 
FROM 
	(SELECT id,warehouse_ids FROM `test` ORDER BYwarehouse_ids DESC LIMIT 1) t 
	JOIN ユーザー AS h ON h.id-1 < ( char_length( t.warehouse_ids ) - char_length( REPLACE ( t.warehouse_ids, ',', '' ) ) + 1 )

次のSQLを参照しました

SELECT 
    t.id AS 'id', 
    t.NAME AS '姓名', 
    substring_index( substring_index( t.courses, '、', h.help_topic_id + 1 ), '、',- 1 ) AS '课程' 
FROM t_student t JOIN mysql.help_topic AS h ON h.help_topic_id < ( char_length( t.courses ) - char_length( REPLACE ( t.courses, '、', '' ) ) + 1 ) 
;

3. 参考資料

MySQL は区切り文字を使用してフィールドを分割します。つまり、SQL 記述で 1 つの行を複数の行に変換します。

mysql は文字列を複数の行に分割します (カンマなどで区切ります)。

おすすめ

転載: blog.csdn.net/weixin_42048982/article/details/130870118