drtoaamk20278 2018-09-13 08:50
浏览 65
已采纳

php或mysql substring_index中的字符串切片

Output of following query has to be sliced.

GROUP_CONCAT(DISTINCT subject.id, '-', subject.en_title ORDER BY subject.id) AS sub,

Output is

3-Math
4-Science

I am Using PHP substr

$sub=substr(strstr($row['sub'], '-'), 1);

so result would be

Math
Science

But It would be better, if it can be sliced in mysql, because I think it reduces php code and less data fetched from database. So I have tried SUBSTRING_INDEX

SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT subject.id, '-', subject.en_title ORDER BY subject.id), '-', -1) AS sub,

But I get only one row

Science

Here, does SUBSTRING_INDEX affect to select row ? if not how can I fetch expected output

  • 写回答

2条回答 默认 最新

  • douguan1887 2018-09-13 09:09
    关注

    You don't need to CONCAT subject.id. You can directly use DISTINCT clause on subject.en_title. Use the following expression instead:

    GROUP_CONCAT(DISTINCT subject.en_title ORDER BY subject.id) AS sub
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?