2017-01-03 13 views
-2

現在、3つの列を持つテーブルがあります。Columns1 Columns2 Columns3。 3つの列はすべてint型です。 Columns3を手動で入力している間、Columns1とColumns2はPHP変数から数値データを取得します。(mySQLを使用)条件に基づくSQL SELECT列

Columns3のIDと値に基づいて、2つの列(Columns1またはColumns2)のいずれかを選択します。たとえば、Columns2でIDが1で、Columns3の値が1で、次にColumns1が必要であるとします。 Columns1のIDが1で、Columns3の値が1の場合、Columns 2の値が必要です。次のイメージは、私が話していることを明確にすることを望みます。

enter image description here

+0

column1が3、column2が2、column3が2の場合はどうなりますか?ロジックを記述した方が良いでしょう。例を提供するだけではありません。 – Shadow

+0

@ Shadowは、Columns3は常に2つの状態(1または2)にあり、決して下または上にはありません。 – Czar

+2

それは問題ではありませんでした。 – Philipp

答えて

0

これは本当に簡単なシナリオです。単純なORの状態でそれを達成することができます。

以下は、私が得た

SELECT 
    CASE 
    WHEN columns1 = columns3 THEN columns2 
    WHEN columns2 = columns3 THEN columns1 
    END colvalue 
FROM table1 
WHERE columns1 = columns3 
OR columns2 = columns3; 

結果の使用は、これはあなたを助けるでしょう

enter image description here

希望であることを確認できるサンプルクエリです。

+0

ありがとうViki888。私はSQLに慣れていないので、構文に精通しています。 colvalueとは何ですか? ID値を取得しますか?私は自分のコードでそれを省略し、それなしで正常に動作します。 – Czar

+0

この例のcolvalueはエイリアスです。 「colvalue」は、特定の列のエイリアス名に過ぎないとArno氏は述べています。「SELECT column AS column_alias FROM table」 – Arno

+0

@CzarはArnoによると、 – Viki888

関連する問題