質問編集履歴
3
コード以外のバックスラッシュを削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,6 +13,6 @@
|
|
13
13
|
SELECT * FROM `table1` WHERE `key2` = 1
|
14
14
|
```
|
15
15
|
のような抽出を行ったとします。
|
16
|
-
しかし、結果の件数が3件未満の場合、「
|
16
|
+
しかし、結果の件数が3件未満の場合、「key1 = 1」も含めた結果で最大3件取得したいと考えています。
|
17
17
|
|
18
18
|
このような抽出が可能なのでしょうか。
|
2
テーブル、フィールド名をバックスラッシュで囲む
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,9 +10,9 @@
|
|
10
10
|
PRIMARY KEY (`id`)
|
11
11
|
);
|
12
12
|
|
13
|
-
SELECT * FROM table1 WHERE key2 = 1
|
13
|
+
SELECT * FROM `table1` WHERE `key2` = 1
|
14
14
|
```
|
15
15
|
のような抽出を行ったとします。
|
16
|
-
しかし、結果の件数が3件未満の場合、「key1 = 1」も含めた結果で最大3件取得したいと考えています。
|
16
|
+
しかし、結果の件数が3件未満の場合、「`key1` = 1」も含めた結果で最大3件取得したいと考えています。
|
17
17
|
|
18
18
|
このような抽出が可能なのでしょうか。
|
1
テーブルの定義をCREATE TABLEに変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
例えば、以下のようなテーブルがあった場合、
|
4
4
|
```MySQL
|
5
|
-
|
5
|
+
CREATE TABLE `table1` (
|
6
|
-
id
|
6
|
+
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
7
|
-
key1
|
7
|
+
`key1` INT NOT NULL,
|
8
|
-
key2
|
8
|
+
`key2` INT NOT NULL,
|
9
|
-
message(
|
9
|
+
`message` VARCHAR(255) NOT NULL,
|
10
|
+
PRIMARY KEY (`id`)
|
11
|
+
);
|
10
12
|
|
11
13
|
SELECT * FROM table1 WHERE key2 = 1
|
12
14
|
```
|