私のクエリはこのようなものです
select 5 from mytable_name;
次に、出力は列名5のようになり、値は5で、そのテーブルに最大行数が存在するため、印刷されます。このクエリがこのように機能する理由を誰か教えてもらえますか?
私のクエリはこのようなものです
select 5 from mytable_name;
次に、出力は列名5のようになり、値は5で、そのテーブルに最大行数が存在するため、印刷されます。このクエリがこのように機能する理由を誰か教えてもらえますか?
このクエリがこのように機能する理由を誰か教えてもらえますか?
'5'テーブルの各行に文字列リテラル値を選択しています。
select 5 from mytable_name;
そして、これはうまくいきます。ステートメントでは、SELECT次を選択できるためです。
標準 SQL 1で定義されているとおり:

アップデート:
ただし、名前が数字の列がある場合は、次のように値を選択するためにエスケープする必要があります。
SELECT `143` FROM Table1;
これにより、列内のすべての行が選択されます143。
でもこれは:
SELECT 143 FROM Table1;
テーブルで見つかった各行に対して文字列リテラル 143 を選択します。
次の点に注意してください:可能であれば、これらの列にこのような名前を付けないようにしてください。これは推奨され、ベスト プラクティスです。
143またはを選択すると'143'、またはこれでも列の日付ではなく"143"リテラル値が選択されることに注意してください。143以下は同じです。
SELECT 143 FROM Table1;
SELECT '143' FROM Table1;
SELECT "143" FROM Table1;
これらSELECTはすべて、列のデータを選択するのでは143なく、列のデータではなくリテラル値を選択します。このデモを参照してください:
次の2つで列名をエスケープする必要があります。
``
このような:
SELECT `143` FROM table1;
いいえ:
SELECT '143' FROM table1'
私がここでやったことのように:
1 Image From:単なる人間のための SQL クエリ
from mytable
where結果を縮小する条件がない場合は、テーブルからすべての行を選択します。と
select 5
5すべてのレコードの定数を選択します。パーツで列名を使用するとselect、その値がすべてのレコードに対して選択されます。
DBエンジンは5、列名を自動的に生成し、5がその論理名であるため、結果に名前を付けます。
おそらく「SELECT * FROM mytable_name LIMIT 0,5」が必要ですか?
where句には何もないので、テーブルからすべての行を選択しています。どの列も選択しないという事実は関係ありません。表の各行の結果が得られます。
コマンドselect 5 ...を使用すると、固定値が表示されます。次のコマンドを実行するのと同じこと: select "test"、固定文字列が表示されます。
を使用し... from mytable_nameて、このテーブルのすべてのレコードを探しています。
mytable_nameこれにより、テーブル内の各レコードに対して固定値が表示されると結論付けることができます"5"。