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

MySQLでタイプを比較してもエラーが発生しないのはなぜですか?


stringをintと比較しようとしても、MySQLはstringをintに変換するため、エラーは発生しません。まずテーブルを作成しましょう-

mysql> create table DemoTable1852
     (
     Value1 varchar(20),
     Value2 int
     );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1852 values('1John',1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1852 values('John',1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1852 values('1',1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1852 values('John1',1);
Query OK, 1 row affected (0.00 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select * from DemoTable1852;

これにより、次の出力が生成されます-

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 1John  |      1 |
| John   |      1 |
| 1      |      1 |
| John1  |      1 |
+--------+--------+
4 rows in set (0.00 sec)

これがMySQLのタイプを比較するためのクエリであり、エラーは発生しません-

mysql> select Value1,Value2, Value1=Value2 as Result from DemoTable1852;

これにより、次の出力が生成されます-

+--------+--------+--------+
| Value1 | Value2 | Result |
+--------+--------+--------+
| 1John  |      1 |      1 |
| John   |      1 |      0 |
| 1      |      1 |      1 |
| John1  |      1 |      0 |
+--------+--------+--------+
4 rows in set, 3 warnings (0.00 sec)

  1. MySQLエラー-#1046-データベースが選択されていません

    エラー-#1046は、テーブルを作成しているときに発生する可能性がありますが、データベースを選択するのを忘れています。以下に示すようにMySQLを開始したとしましょう- 正しいパスワードを入力すると、上記のウィンドウが開きます。次に、データベースを選択せず​​にテーブルを作成します。これはエラーを表示します- mysql> CREATE table TblUni -> ( -> id int, -> Name varchar(100) -> ); エラー1046(3D000):データベースが選択されていません 次のスクリーンショットは同じエラーを示して

  2. MySQLはデータベースファイルをどこに保存しますか?

    MySQLがデータベースファイルを保存する場所を知るには、変数@@datadirを使用できます。クエリは次のとおりです- mysql> select @@datadir; 以下は、パスを表示する出力です- +---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +