0

这有点难以解释,但我想从一系列行之间的表中获取数据,其中该行具有特定的入口起点和终点。

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

所以*之间是我感兴趣的数据。问题是这会有所不同,所以每次的行号都会不同。并且它可能在表格中出现不止一次,这可以拉每个条目。其实是必要的。

如果您需要更多信息,请告诉我...

4

2 回答 2

1

我认为你不能只在 SQL 中做到这一点,这就是我在 PHP 中使用两个查询和一些 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 回答
0

您感兴趣的值存储在一个表格列(单元格)中?如果是这样,它是哪种数据类型?如果是文本数据,可以使用 MATCH 或 REGEXP 函数http://dev.mysql.com/doc/refman/5.7/en/regexp.html#operator_regexp

但请注意,它会很慢。

于 2013-06-12T07:44:11.223 回答