こんにちは、私は PHP と mysql を使用しています。データベース テーブルは次のとおりです。
Code Price
226 0.001
7565 0.001
7566 0.001
7567 0.001
7568 0.001
7569 0.001
7570 0.001
7571 0.001
7572 0.001
7583 0.002
7584 0.002
7585 0.003
7586 0.003
そして、次のような出力が必要です:
Code Price
226 0.001
756 0.001
757 0.001
7583 0.002
7584 0.002
7585 0.003
7586 0.003
つまり、価格が10の範囲にある場合、価格が同じ場合は最後の値をトリミングする必要があり、異なる価格が10の範囲にある場合、コードはそのままになります。
上記の 226 には 220 と 229 の間にそれ以上の値がない単一の値があるため、この値を 226 - 0.001 とします。また、7565 から 7569 まで、これらの数値は 7560 から 7569 の範囲にあり、同じ価格であるため、これらにグループ化を使用します共通の値756を取得し、7583、7584、7585、7586の場合、これらは7580〜7589の範囲にありますが、価格の2つの値があるため、コードの全範囲にグループを使用できないため、そのままになります。コードが 10 の範囲内にあり、価格が同じ場合にのみトリミングが必要です。
国名、国コード、都市コード、価格のデータベースがあり、Excel から値を読み取っています。国フィールドには、 225 または 2247 または 226のような Excel の行に 1 つの値しかなく、都市コードには、120、123-129、165-169 などの国に対応する値があります。
通常、私の要件は、都市コードの列に120,123-129, 165-169が含まれている場合、国コードと対応する都市コードを225のように連結することでした。 225166,225167,225168,225169 これが私の最初のデータベース シナリオです。しかし、国コードが 225 で都市コードが空白で、226 が別の国コードで都市コードが空白の場合、都市コードは適切な国コードに対して空白になるため、もう 1 つ問題があります。したがって、適切な国コードの値はトリムされず、価格が同じであっても225,226と見なされます。値は、都市コードが連結されている場合にのみトリムされます。
MySQLクエリでこれを行う最善の方法はありますか?
ありがとう