-1

クエリで配列を取得しました

この配列は基準によって並べられています。

今、私は新しいクエリを作りたいです

サンプル

$array = (987, 2661, 12, 789, 54);

そして、私は記事を選択する配列によってこの順序で欲しい

select * from article a.number WHERE (a.number IN ($array))

この結果が $array ID で並べられていることをどのように認識できますか?

Thx あなた 4 人の答えの人:)

編集 :

Article Table:
id, name etc..

Property Table:

id, article_id, name, value

1,        10,   journey_days, 2
2,        30,   journey_days, 1
3,        40,   journey_days, 5
1,        10,   stars,        2
2,        10,   stars,        4
3,        10,   stars,        0
4,        10,   stars,        1

両方のテーブルを結合しますが、ご覧のとおり、プロパティには 1 つの記事の列ごとに複数の値があります。

プロパティ テーブルを記事テーブルに結合し、プロパティ テーブルから記事に関連付けられているすべての値を取得する必要があります。where 句を作成すると、星または tour_days が取得されます。

どうすればこれを理解できますか?where または on 句ですべての property.name 値を選択するには?

皆さんが私の質問を理解してくれることを願っています

4

2 に答える 2

1

使用implode:

$s = implode(",", $array);
$q = "select * from article a.number WHERE (a.number IN ($s))";
于 2013-07-11T13:03:16.127 に答える
0

それによって式と順序を作成することもできますがCASE、これはデータベースの外で PHP で行う方がよいでしょう。

... ORDER BY CASE a.number 
         WHEN 987   THEN 1
         WHEN 2661  THEN 2
         WHEN 12    THEN 3
         WHEN 789   THEN 4 
         WHEN 54    THEN 5
         END;

FIND_IN_SETまたは、次の関数を使用できます。

.... ORDER BY FIND_IN_SET(a.number, "987,2661,12,789,54");
于 2013-07-12T09:07:22.180 に答える