問題タブ [tinyint]

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.

0 投票する
1 に答える
134 参照

javascript - ExpressでTINYINT(1)をBOOLEANに変換するには?

私のMySQLデータベースにはいくつかの列(infectedおよび)があり、 .absenceTINYINT(1)

私が簡単なことをするとき

私のバックエンドと

私のReactJSフロントエンドでは、次のようなことはできません:

それだけ

は働いている。

users.filter((u) => u.infected);私にとってはより直感的に使用できるので、知りたいのですが、これをベストプラクティスでどのように処理できますか?

  1. 値を別の型に格納する必要がありますか?
  2. 別の方法で値を選択する必要がありますか?
  3. クエリを実行した後、値を 1 から TRUE に、0 から FALSE に変換する必要がありますか?
  4. get リクエストの後にフロントエンドで値を変換する必要がありますか?

私のフロントエンドはすでにあらゆる場所でブール値を期待しているため、これが最善の取引でない限り、4. の使用は避けようとしています (データベースを MySQL に切り替えました)。

0 投票する
0 に答える
13 参照

mysql - MySQL 8.x: unsigned 属性がフィールド長をオーバーライドする

整数値を見る。Unsigned 属性を設定すると、フィールドの長さが上書きされるようです。

従来、MYSQL は BOOLEAN エイリアスを TINYINT(1) に変換します。inter-webs によると、MySQL 8.0.17 の時点で、整数データ型の表示幅の仕様は廃止されました。これには次の 2 つの例外があります。 TINYINT(1) ただし、TINYINT 値に UNSIGNED を設定すると、表示の長さが失われるというバグ (既知または未知の IDK) があります。

再現する手順:

  1. BOOLEAN として使用することを意図したフィールドを持つテーブルを作成します。

    CREATE TABLE users( idint unsigned NOT NULL AUTO_INCREMENT , user_namevarchar(50) NOT NULL, passwordvarchar(255) NOT NULL, is_activetinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY ( id), ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

  2. TINYINT(1) の表示長が実際に設定されていることを確認します。

  3. テーブルを変更して is_active を UNSIGNED 値にします。

    ALTER TABLE users CHANGE COLUMN is_active is_activeTINYINT(1) UNSIGNED NOT NULL DEFAULT '1' ;

  4. TINYINT に表示長がなくなっていることに注意してください。

  5. リスト項目

期待される結果:

オプションが0または1になるため、「BOOLEAN」の正しいフィールド属性は符号なしであると主張します。負ではありません。したがって、TINYINT(1) の UNSIGNED 動作は符号付き動作と同じであり、フィールドの表示長が設定/保持されることを期待します。

質問:

他の誰かがこの動作に遭遇しましたか? 回避策に関するアイデアはありますか?現在、署名されたtinyintに固執しています...

0 投票する
2 に答える
33 参照

mysql - MYSQL で TINYINT(1) の列に対して AND 演算を行う方法はありますか?

次のテーブルを取得しました。すべての行が disponibilidad = 1 の場合は 1 を返す必要があります

例の表

次の QUERY は問題なく動作しますが、より効率的な方法を探していました。

クエリ:

結果:

結果

私が見たように、「AND」を使用すると、AVG() を実行する必要がないため、はるかに効率的になります。

0 投票する
2 に答える
40 参照

mysql - MySQL での tinyint(M) のユーティリティは何ですか?

これはより学術的な問題です。MySQL データベースでは、tinyint(M) と tinyint(1) との違いがこのフォーラムで既に議論されていることは知っていますが、別のことを考えています。列 "REVIEWED TINYINT(5) を使用して、5 つの異なるブール値チェックボックスの値をフロントエンド フォームに格納できますか?私はそれを配列として扱う方向に沿って考えています。もしそうなら、それらはどのように参照されますか?何かREVIEWED(3) や REVIEWED[3] のように、それらの要素を参照できますか?すべての要素が 1 または 0 (または null) であるかどうかをチェックするための構文はありますか?