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

データ型とデータ値を含むSQL選択

    SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' ただし、さらにフィールドを選択するには、INFORMATION_SCHEMA.COLUMNSの別のインスタンスを別のエイリアスで再度追加する必要があります。

    しかし、多くの理由でこれを行うべきではありません。

    技術的には、CROSS JOIN(FROMのテーブルは単にコンマでリストされています)はデータベースサーバーに大きな負担をかけます。 FROM T1, T2 T1のすべての行をT2のすべての行とペアにして、結果の行を調べます。 T1にn行、T2にmの場合、結果にはn*m行が含まれます。

    論理的に1:この情報を返す必要はありません。クエリ(SELECT)を入力すると、返されるスキーマがわかります。クエリは、結果の列がどのデータ型であるかを決定します。論理的に2:すべての行の列に同じデータ型があるため、すべての行で型情報を返す必要はありません。例えば。 1000人の従業員のデータを返す例では、すべての行で不必要に転送されます AGEフィールドがINTEGER、NAMEがVARCHARなどであること...

    どういうわけか結果のスキーマがわからない場合(たとえば、生成されたクエリなどのため)、上記の解決策は役に立ちません。




    1. データ探索のためにMetabaseをMySQLに接続する

    2. PHPのマルチレベルforループ

    3. カーソルを使用してSQLServerデータをSalesforceに挿入する

    4. mysqlに複数の同じIDを同時に挿入することを回避する