0

MySQL リクエストで 3 つの特定の行を見つけたいとします。たとえば、行 5、10、および 15 としましょう。

私は3つの単一のリクエストを行うことができることを知っています

SELECT * FROM \`table\` WHERE \`value\` = '$value' LIMIT 4,1
SELECT * FROM \`table\` WHERE \`value\` = '$value' LIMIT 9,1
SELECT * FROM \`table\` WHERE \`value\` = '$value' LIMIT 14,1

しかし、これを実行してすべてを 1 つのクエリにまとめる簡単な方法はありませんか?

4

3 に答える 3

2

MySQL の行は順序付けされていません。つまり、任意の順序で返すことができます。したがって、使用LIMITする提案されたソリューションは永久に機能しません。代わりに、属性を追加して、ID以下のように日付をクエリします。

SELECT * FROM `table`
WHERE `value` = '$value'
  AND `ID` in (5, 10, 15)
于 2013-08-16T13:19:12.333 に答える
0

試してくださいUNION ALL

SELECT * FROM (SELECT * FROM `table` WHERE `value` = '$value' LIMIT 4,1) as tmp1
UNION ALL
SELECT * FROM (SELECT * FROM `table` WHERE `value` = '$value' LIMIT 9,1) as tmp2
UNION ALL
SELECT * FROM (SELECT * FROM `table` WHERE `value` = '$value' LIMIT 14,1) as tmp3
于 2013-08-16T13:17:46.767 に答える