問題タブ [between]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 間にあるMysqlサブクエリ
CakePHPでACLを使用していて、現在のユーザーに許可されているすべてのエントリをフェッチしたいと思います。
簡略化すると、2つのテーブルがあります。
間隔:
Acos:
ここで、間隔からlftとrghtの間にlftとrghtの値を持つforeign_keysFROMAcosをフェッチしたいと思います。
上記の例では、foreign_key 3、5、6を取得します。
ちなみに。「間隔」テーブルは実際には存在しません。値はこのクエリ(およびacosテーブル)から取得されました。
上記の例があまりにも乱雑であることを望みません。不確かな点があればコメントしてください。前もって感謝します!
php - PHP:変数の値が2つの異なる定数値の間にあるかどうかをどのように判断できますか?
たとえば、値を持つ変数があるPHPコードを使用して判断するにはどうすればよいですか?
- 1から10の間、または
- 20から40の間?
mysql - 日付範囲全体の MySQL 合計値
各行に日付と任意の数値が含まれるテーブルがあります。特定の動的な日付間隔について、この値を合計する必要があります。
次のクエリは、上記のデータ セットの正しい出力を返し、何をしようとしているのかを示しているはずですが、に基づいて年と月の値を生成する必要がありますwork_date
。日 (16、15) は決して変わりません。具体的には、このクエリは 2 つの行を生成します。1 つは指定された期間用で、もう 1 つはその他の期間用です。各期間 (N 月の 16 日から N+1 月の 15 日まで、値を持つすべての月) ごとに 1 行が必要です。
正しく動作するが、間違った間隔 (01 ~ 31 日) で動作する別の例:
さらに、開始日と終了日を同時に出力する方法があれば、私もそれを望みますが、それはあまり重要ではありません。
mysql - 2 つのカラム間の mysql select の動作が遅すぎる
私はこのクエリを持っています:
インデックスの使用が不適切であり(使用しますが、テーブルの大部分を解析します)、動作が遅すぎます。ORDER BY と LIMIT を使用してみましたが、役に立ちませんでした。
「開始 <= 1840344811 AND 1840344811 <= 停止」も同様に機能します。
テーブルには 57,424 行あります。
クエリ "... BETWEEN START AND STOP ORDER BY START LIMIT 1" について説明します: キーstop
を使用して 24099 行を取得します。順序と制限がない場合、mysql はキーを使用せず、すべての行を取得します。
objective-c - Objective C、SQLiteSELECTBETWEEN問題
スクローラーによって選択されたUNIXタイムスタンプに基づいてSQLiteデータベースからレコードをプルしようとしています。各レコードにはタイムスタンプと期間があるため、選択したタイムスタンプが開始時刻の後、開始時刻と期間の後にある場合は、選択する必要があります。
私はクエリを作成しました。これは動作するはずであるだけでなく、XCodeに付属しているSQLiteを使用していないSQLiteクライアントでも動作します。
これが私の質問です。タイムスタンプは選択されたタイムスタンプであり、スタンプフィールドはレコードのタイムスタンプであり、期間は予約の長さ(分単位)です。
私が持っているクライアントを使用してこれが機能することがわかる唯一の理由は、SQLiteのバージョンが異なり、BETWEENコマンドがサポートされていないか、同じ方法でサポートされていないことです。
アドバイスや助けをいただければ幸いです。ありがとう!
sql - 同じ列または異なる列に対して1つのSQLステートメントで「BETWEEN」条件を2回使用する方法
これはSQLステートメントであり、値を1つだけ指定します
同じ列または同じテーブルの異なる列に「間」を複数回使用したい
たとえば、date1で複数回使用したい、またはdate1とdate2で範囲が異なる場合に使用したい
注:私はjava DB Derpy(JDBC-Derby)を使用しています
sql-server - 2 つの日時フィールド間の SQL Server が正しく機能しない
SQL Server 2005:
次のビュー
2011 年 3 月 2 日から 2011 年 3 月 31 日までのキー日付の結果が表示されます。
最初の日付を 03/00/2011 に変更した場合
2011 年 3 月 1 日から 2011 年 3 月 31 日までの日付のデータが得られるようになりました。
KeyedTimestamp フィールドは DateTime であり、これらのレコードに関連付けられた時刻があります。2011 年 3 月 31 日のすべてのレコードが考慮されます。間に2番目の日付の最大時間を指定することで代わりにこれを行うことができることを知っているので、代わりのwhere句を探しているのではなく、最初のレコードを組み込んでいるにもかかわらず、最初のレコードを無視している理由を理解しています31日から。
まるで 2011 年 3 月 1 日 23:59:59 をチェックしているかのように、時間ではなく日付だけを気にするこの種のチェックをなくしたいと思っていました。
sql - アクセス中のオペレータ間
私は Access データベースに取り組んでいます。ユーザーが開始日と終了日を選択できるようにするクエリを作成しようとしています。[基準] の下のデザイン ビューのクエリを次に示します。
[日付を入力してください(mm/dd/yyyy)] と [日付を入力してください(mm/dd/yyyy)] の間
ただし、2011 年 4 月 1 日と 2011 年 5 月 12 日が入力された後、Access データベースの結果は以下のクエリと同じではありません。
アクセス:16,564件
MS クエリ: 16,573 レコード
想定時刻は午前12時だそうです。クエリに終了日を午後 11 時 59 分まで含めるにはどうすればよいですか?
どうもありがとう!
php - 数値範囲の分析
WHERE クエリを生成する最も効率的な方法を見つけようとしています。私は以前に別の質問をしましたが、これは似たようなものでしたが、これについては要点を説明します.
数値範囲のコレクションが与えられた場合、つまり1-1000
、1500-1600
これらの値の間にあるレコードを選択する mysql where 条件を作成するのは非常に簡単です。
つまり、次のようにします。
WHERE (lft BETWEEN 1 and 1000) OR (lft BETWEEN 1500-1600)
. ただし、NOT BETWEEN も組み込みたい場合はどうでしょう。
たとえば、次のようないくつかのルールを定義する場合...
- 1 ~ 1000 の間で許可
- 1500 ~ 1600 の間で許可
- 1250 ~ 1300 の間で許可
- 25 ~ 50 の間で拒否
WHERE 条件を効率的に生成するために、これらのルールをマージするにはどうすればよいですか。ALLOW BETWEEN 1 - 1000
そこにギャップを作るために、WHERE で を分析してほしいと思います。となるよう1-24
に51-1000
。DENY ルールは最初のルールの後に定義されるため、前のルールを「上書き」します。
別の例として、あなたが持っているとしましょう
- 5 ~ 15 の間で許可
- 10 ~ 50 の間で拒否
- 45 ~ 60 の間を許可
次に、実行できる WHERE 条件を生成したいと思います。
WHERE (lft BETWEEN 5 and 9) OR (lft BETWEEN 45 and 60)
.
メモ (編集)
- また、許可される最大範囲は 1 ~ 5600000 です (これは「地球」になります)。地球上のすべてを許可します。
- 数値範囲は、実際には NESTED SET MODEL の LEFT 値です。これらは一意のキーではありません。なぜ私がこれをやりたいのかは、以前に尋ねたこの質問で読むことができます。 https://stackoverflow.com/questions/6020553/generating-a-mysql-between-where-condition-based-on-an-access-ruleset
- 数値範囲に関する重要な注意事項 私が行ったサンプル例を使用するべきではなかったかもしれませんが、数値範囲の性質に関する重要な注意事項の 1 つは、実際には範囲が常に完全に消費されるか、前のルールによって消費される必要があるということです。たとえば、上記の例では、10 ~ 50 が許可され、45 ~ 60 が拒否されます。これは、私のデータセットでは実際には起こりません。実際には
allow 10-50
の場合、DENY はその範囲、つまり 34 ~ 38 で完全に消費される必要があります。または、前のルールを完全に消費します。9-51
. これは、範囲がネストされたセット モデルの lft 値と rgt 値を実際に表しており、提示したように重複することができないためです。
私は質問をするときにそれについて言及するつもりはありませんでしたが、以下の実際のサンプル コードを見て、このメモが実際に重要であることがわかりました。
(以下のコメントに従って、AND の代わりに OR を含めるように mysql の例を編集しました)