0

これは少し説明が難しいのですが、特定のエントリの始点と終点を持つ行の範囲内のテーブルからデータを取得したいと考えています。

234 ****************************************************
235 some data
236 more data
237 even more data
238 etc...
239 ****************************************************

したがって、* の間は私が興味を持っているデータです。問題は、これが異なるため、行番号が毎回異なることです。また、テーブルに複数回表示される場合がありますが、すべてのエントリをプルしても問題ありません。実際には必要です。

さらに情報が必要な場合はお知らせください...

4

2 に答える 2

1

SQL だけではできないと思います。2 つのクエリと PHP ロジックを使用して 2 番目のクエリを作成する方法を PHP で示します。

//this array is to simulate your table, don't make it.
$data = [1 => '*****', 'This', 'is', 'data', '*****', '*****', 'more', 'data', '*****', 'random', '*****', 'rows', '*****'];

//Run a query to get all the ids
$sql = "SELECT id FROM tbl WHERE data =  '*****' ORDER BY id ASC";
//assign them to an array - I did it manually.
$ids = [1, 5, 6, 9, 11, 13];

//Build the query to get the end sets.
$query = "SELECT * FROM tbl WHERE ";
while (count($ids)) {
    $start = array_shift($ids);
    $end = array_shift($ids);
    $query .= "(id >= $start AND id <= $end) OR ";
}
$query = trim($query, " OR ");
echo $query;
于 2013-06-12T08:09:44.447 に答える