Permissions
私はMySQLテーブルを持っています。それを数値列UserId
とで呼び出しましょうPrivilege
。UserId
列は10進値と見なされますがPrivilege
、16進値であると想定されています。16進値は特権コードに適しています(すべての特権ビットがR、W、Xなどのフラグを担当するため)。これはINSERT
、16進リテラルを使用するステートメントで広く使用されています。例:
INSERT INTO `Permissions` (`UserId`, `Privilege`) VALUES (12, 0x53);
3
in0x53
がエンコードされた特権アクションを表すフラグマスクであると仮定します。そのため、このようなINSERT
ステートメントを読んだ人は、このアクセス許可がR(1)およびW(2)アクセス許可を付与することを簡単に理解できます。ただし、たとえばネイティブMySQLクライアントでテーブルへのクエリPermissions
が実行されると、特権値は10進数で表示されます(想定してくださいSELECT * FROM
)。
+--------+-----------+
| UserID | Privilege |
+--------+-----------+
| 12 | 83 |
+--------+-----------+
MySQLクライアントにデフォルトで16進ビューでいくつかの数値列を表示する(文字列として返さない)ように推奨する方法はありますか?おそらく、テーブルメタデータ、うーん、「推奨事項」のどこかにあるか、クライアント構成のどこかにある可能性があります。正直なところ、私にはわかりません。これが役立つもう1つの理由は、クエリを呼び出すたびに特定の列に関数を適用せずに、結果セットの列タイプを数値から文字列に変更するという単純なクエリを使用できる可能性があるためです。SELECT * FROM
HEX()
HEX()
何か案は?あなたの助けは本当にありがたいです。前もって感謝します。
PSこの質問をここで行うべきかどうかはわかりません。スーパーユーザーまたはデータベース管理者が適している場合は、移行してください。ありがとう!