必须对以下查询的输出进行切片。
GROUP_CONCAT(DISTINCT subject.id, '-', subject.en_title ORDER BY subject.id) AS sub,
输出为
3-Math
4-Science
我正在使用php substr
```
$sub=substr(strstr($row['sub'], '-'), 1);
所以结果是
Math
Science
但如果可以在mysql中进行切片,那就更好了,因为我认为这样可以减少php代码,减少从数据库获取的数据。所以我尝试了子串索引
SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT subject.id, '-', subject.en_title ORDER BY subject.id), '-', -1) AS sub,
但我只有一排
Science
在这里,是吗 `SUBSTRING_INDEX` 影响选择行吗?如果没有,我如何获取预期的输出
2条答案
按热度按时间zphenhs41#
你不需要这么做
CONCAT
subject.id
. 你可以直接使用DISTINCT
条款subject.en_title
. 请改用以下表达式:vybvopom2#
你应该试着用replace
我也会把distinct放在groupconcat之外,并正确地使用groupby