sql >> データベース >  >> RDS >> Mysql

SQLでは1は常に「1」に等しいですか?

    SELECT 1='1' TRUEを与える '1'以降 INTの正しいコンストラクターです 私が知っているすべての実装で。

    ただし、SQLは厳密な型指定を使用します。次を参照してください:

    # SELECT 1=CAST('1' AS TEXT);
    ERROR:  operator does not exist: integer = text
    LINE 1: SELECT 1=CAST('1' AS TEXT);
                    ^
    HINT:  No operator matches the given name and argument type(s). You might need to add  explicit type casts.
    

    標準(SQL 92、99、2003)に関しては、間違っているようです:

         <literal> ::=
                <signed numeric literal>
              | <general literal>
    
         <general literal> ::=
                <character string literal>
              | <national character string literal>
              | <bit string literal>
              | <hex string literal>
              | <datetime literal>
              | <interval literal>
    
         <signed numeric literal> ::=
              [ <sign> ] <unsigned numeric literal>
    
         <unsigned numeric literal> ::=
                <exact numeric literal>
              | <approximate numeric literal>
    
         <exact numeric literal> ::=
                <unsigned integer> [ <period> [ <unsigned integer> ] ]
              | <period> <unsigned integer>
    
         <unsigned integer> ::= <digit>...
    
         <character string literal> ::=
              [ <introducer><character set specification> ]
              <quote> [ <character representation>... ] <quote>
                [ { <separator>... <quote> [ <character representation>... ] <quote> }... ]
    

    <quote> <bit string literal>にのみ含まれています 、<hex string literal> 、...ただし、数値リテラルではありません...



    1. 複数の選択されたチェックボックスからデータベースに値を挿入する

    2. 2つのmysqlクエリを組み合わせる

    3. PHPスクリプトを使用してデータベースに画像をアップロードするにはどうすればよいですか?

    4. 指定された名前に一致するログインを SQL Server に検出させるにはどうすればよいですか?