MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

オーバーフローの処理におけるNO_UNSIGNED_SUBTRACTSQLモードの使用は何ですか?


SQL strictモードが有効になっている場合、1つがUNSIGNEDタイプである整数値を減算すると、デフォルトで符号なしの結果が生成されます。ただし、結果が負の場合、MySQLはエラーを生成します。次の例で観察できます-

mysql> SET sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Select CAST(0 AS UNSIGNED) -1;
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(cast(0 as unsigned) - 1)'

上記のクエリ後のエラーは、数値算術式の後のオーバーフローであることを示しています。

これで、NO_UNSIGNED_SUBTRACTIONSQLモードを有効にすることで処理できます。このモードを有効にすると、結果はエラーではなく-1になります。

mysql> Set sql_mode = 'NO_UNSIGNED_SUBTRACTION';
Query OK, 0 rows affected (0.00 sec)

mysql> Select CAST(0 AS UNSIGNED) -1;
+------------------------+
| CAST(0 AS UNSIGNED) -1 |
+------------------------+
|                     -1 |
+------------------------+
1 row in set (0.00 sec)

  1. printf()での%nの使用は何ですか?

    C言語では、%nは特別な形式指定子です。これにより、printf()は、対応する引数が指す変数をロードします。ロードは、%nが発生する前にprintf()によって出力された文字数に等しい値で行われます。 注- 何も印刷されません。別のprintf()関数を使用して、ステートメントを出力します。 これはC言語の%nの例です 例 #include<stdio.h> int main() {    int s;    printf("The value of %ns : ", &s);    pr

  2. PHPでのini_set()の使用法は何ですか?

    PHPを使用すると、ユーザーはini_set()を使用してphp.iniに記載されている設定の一部を変更できます。この関数には2つの文字列引数が必要です。 1つ目は変更する設定の名前で、2つ目はそれに割り当てられる新しい値です。 パラメータ 変数名 使用可能なすべてのオプションをini_set()を使用して変更できるわけではありません。付録には、利用可能なすべてのオプションのリストがあります。 新しい値 オプションの新しい値。 例 <?php    ini_set('display_errors', '1'); ?> コード