これは私のテーブルです:
そこからコードと番号を選択したいのですが、これは私のクエリの視覚化です。
そしてこれはクエリです:
SELECT Code,Number,(1894 - Limit1) AS spread1,(Limit2 - 1894) AS spread2
FROM MyTable WHERE Name="John" AND 600>=L1 AND 600<=L2
AND 1894>=Limit1 AND 1894<=Limit2
写真に示されているように、このクエリは2つの値を返し、必要なのは1つだけです。したがって、row1のspread2とrow2のspread1を比較し、コードとより大きなスプレッドの数を取得する必要があります。この場合はです。spread2
row1のspread2とrow2のspread1を比較しているのは、それらが重複しているためです。だから、私はそのオーバーラップ内のスプレッドを比較しています:
上記のクエリでは、結果として1行または2行しか取得できず、それ以上は取得できません。なんで?テーブルはそのように作成されるからです。結果として1つの行が表示された場合、比較は必要ありません。つまり、コードと番号が1つしかないということです。
したがって、最終的には、上記のことを行うためにクエリを拡張する必要があります。
私が試したことは、次を追加することです。
ORDER BY (spread2,spread1) DESC LIMIT 1
同じ行の値が欲しいので、値を比較しないと確信しています。