我正在尝试对mysql查询结果进行子串,以获取我的单独数据列。我的分隔符是“||”字符,它将分隔每个结果。 我正在网上搜索,似乎无法找到一个将mysql结果子串的源。我总是发现它从表中对列进行了子串。这是否可以使用子串?
我创建了2个数字和样本表:
表格示例
表号
以下是我的问题:
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
这是我的结果查询
这是我的预期结果
更新
我已经尝试在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++;
}