代码之家  ›  专栏  ›  技术社区  ›  Dipak

php或mysql子字符串索引中的字符串切片

  •  2
  • Dipak  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  1
  •   Madhur Bhaiya    6 年前

    你不需要这么做 CONCAT subject.id . 你可以直接使用 DISTINCT 条款 subject.en_title

    GROUP_CONCAT(DISTINCT subject.en_title ORDER BY subject.id) AS sub
    
        2
  •  0
  •   Guy Louzon    6 年前

    你应该试着用REPLACE

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