私のクエリはこのようなものです
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"
。