子串结果查询

时间:2018-05-28 07:16:55

标签: mysql substring

我正在尝试对mysql查询结果进行子串,以获取我的单独数据列。我的分隔符是“||”字符,它将分隔每个结果。 我正在网上搜索,似乎无法找到一个将mysql结果子串的源。我总是发现它从表中对列进行了子串。这是否可以使用子串?

我创建了2个数字和样本表:

表格示例

enter image description here

表号

enter image description here

以下是我的问题:

SELECT sample.id,
       SUBSTRING_INDEX(SUBSTRING_INDEX(sample.DESCRIPTION, '::', numbers.n), '::', -1) AS DETAIL
FROM numbers
INNER JOIN sample ON CHAR_LENGTH(sample.DESCRIPTION) -CHAR_LENGTH(REPLACE(sample.DESCRIPTION, '::', ''))>=numbers.n-1
ORDER BY id,
         n

这是我的结果查询

enter image description here

这是我的预期结果

enter image description here

更新

我已经尝试在PHP中执行此操作,并且我已经取得了另一项进展。但是,我得到一个未定义的偏移量。

代码:

$querydata = "SELECT DESCRIPTION from sample";
$resultdata = $conn->prepare($querydata);
$resultdata->execute();

$storeresult = $resultdata->fetchObject();
$resultquery = $storeresult->DESCRIPTION;


$pieces = explode("::",$resultquery);

$countVal = count($pieces);

$counter = 0;
$counter1 = 1;
$counter2 = 0;


while($counter<$countVal){
$pieces1 = explode("||", $pieces[$counter]);
$pieces2 = explode("||", $pieces[$counter]);
$pieces3 = explode("||", $pieces[$counter2]);


echo $pieces1[0]."<br>"; // detail
echo $pieces2[1]."<br>"; // response


$counter++;
$rowCount++;

}

0 个答案:

没有答案