質問編集履歴
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 
     | 
    
         
             
            ```
         
     |