0

フィールド値 (コンマ区切り) を配列または一時テーブルに取得する方法はありますか。

following例:値を持つフィールドがあります3,7,23,45

PHPを使用せずに配列に入れるか、一時テーブルに入れたいです。

これらの値に基づいていくつかの共同クエリを実行する必要があるためです。

どんな助けでも大歓迎です

ありがとう

私のテーブル名は次のとおりです。靴のフィールド名は次のとおりです

サンプルテーブルの値は次のようなものです

   +----------+----------+

   次のユーザーID
   +----------+----------+
    1 5,7,8,12
    2 5,2,1,67

今、userId 1 を検索するとき5,7,8,12に、配列または一時テーブルに値を取得したいと考えています。

4

2 に答える 2

0

特に速くはありませんが、それは可能です。最善の解決策は、データベースを再設計して、コンマ区切りのリストを別のテーブルに移動し、コンマ区切りの要素ごとに1行ずつ移動することです。

ただし、SQLでそれを実行する方法が必要な場合は、次のような方法で実行できます(これは、整数と呼ばれるテーブルにiという単一の列があり、値が0から9の10行であることに依存しています)。

SELECT DISTINCT shoes.userId , substring_index(substring_index(shoes.FollowingIdString, ',', anInt), ',', -1) AS SplitField
FROM shoes,
(SELECT a.i+b.i*10+c.i*100 AS anInt
FROM integers a, integers b, integers c) Sub1
HAVING SplitField IS NOT NULL
于 2013-01-03T10:18:28.447 に答える
0

複数の列を持つテーブル PersonList があり、これがフォロワー リストの名前を取得するために結合するテーブルであると仮定します。例えば

人物テーブル

ID   Name
1    AAA
2    BBB

FIND_IN_SETと呼ばれる mysql 関数があります。

SELECT a.userID, GROUP_CONCAT(b.Name)
FROM   Follower a
       INNER JOIN Person b
        ON FIND_IN_SET(b.id, a.following) > 0
GROUP BY a.userID
于 2013-01-03T10:53:52.340 に答える