2017-12-08 9 views
-1

は、私は、MySQLのクエリUNIONとLIMITだけでMySQLのクエリが1回実行されますか?

SELECT Cars.details FROM Cars WHERE Old = 'Old' 
LIMIT 5, 5 
UNION 
SELECT Cars.details FROM Cars WHERE New = 'New' 
LIMIT 5, 5 

を使用しかし、私は唯一の新車からの結果を得るこれらの結果

id details 
----------------- 
6 I am old car 
7 I am old car 
8 I am old car 
9 I am old car 
10 I am old car 
6 I am New car 
7 I am New car 
8 I am New car 
9 I am New car 
10 I am New car 

を取得する必要があります。

結果は1-5 から開始し、これらのグループの両方

で、5のグループに望ましい結果を得るためにそれは可能ですクエリLIMITを分割が、1つのクエリに滞在する可能性はありますか?

+0

サンプルデータに「Old」または「New」フィールドが含まれていません。テーブルの実際のスキーマを表示できますか? –

+1

ユニオンには暗黙の区別が付いているので、両方の選択でcar.detailsが同じであると思われます。 union allに変更してみてください。 –

+0

https://imgur.com/hr9ISke – user1780343

答えて

1
mysql> drop table if exists Cars; 
Query OK, 0 rows affected (0.21 sec) 

mysql> create table Cars (id int , details varchar(20),old varchar(3), new varchar(3)); 
Query OK, 0 rows affected (0.38 sec) 

mysql> insert into Cars values 
    -> (6 , 'I am old car','old', null), 
    -> (7 , 'I am old car','old', null), 
    -> (8 , 'I am old car','old', null), 
    -> (9 , 'I am old car','old', null), 
    -> (10 , 'I am old car','old', null), 
    -> (6 , 'I am New car',null, 'new'), 
    -> (7 , 'I am New car',null, 'new'), 
    -> (8 , 'I am New car',null, 'new'), 
    -> (9 , 'I am New car',null, 'new'), 
    -> (10 , 'I am New car',null, 'new'); 
Query OK, 10 rows affected (0.22 sec) 
Records: 10 Duplicates: 0 Warnings: 0 

mysql> 
mysql> select * from 
    -> (
    -> SELECT Cars.details FROM Cars WHERE Old = 'Old' 
    -> LIMIT 0, 5 
    ->) a 
    -> UNION all 
    -> (
    -> SELECT Cars.details FROM Cars WHERE New = 'New' 
    -> LIMIT 0, 5 
    ->) 
    -> ; 
+--------------+ 
| details  | 
+--------------+ 
| I am old car | 
| I am old car | 
| I am old car | 
| I am old car | 
| I am old car | 
| I am New car | 
| I am New car | 
| I am New car | 
| I am New car | 
| I am New car | 
+--------------+ 
10 rows in set (0.03 sec) 
+0

あなたの助けをありがとう それは動作します! – user1780343

+0

- >)aそれはどういう意味ですか? – user1780343

+0

私はこれを自分でコマンドラインに書いた。 –