代码之家  ›  专栏  ›  技术社区  ›  Jeni Vasileva

SQL按字符串分组并按符号剪切结果

  •  1
  • Jeni Vasileva  · 技术社区  · 7 年前

    我使用MySql,我有这样的表

    id |city               | address         | work_time
    -------------------------------
    1  |London - center    |London street 1  |7am - 10 pm
    2  |London - center 2  |London street 2  |7am - 10 pm
    3  |London - center 3  |London street 3  |7am - 10 pm
    4  |Paris - bol 1      |Bol street 3     |9am - 10 pm
    5  |Paris - bol 2      |Bol street 13    |9am - 10 pm
    

    之前如何按第一个字符串对所有城市进行分组 - 要裁剪此符号后的所有字母? 我想在名单上只显示伦敦和巴黎这样

      id |city               
      -------------------------------
      1  |London 
      2  |Paris 
    
    2 回复  |  直到 7 年前
        1
  •  4
  •   Nick SamSmith1986    7 年前

    你可以用 SUBSTRING_INDEX SELECT DISTINCT :

    SELECT DISTINCT SUBSTRING_INDEX(city, ' -', 1) AS city
    FROM yourtable
    

    Demo on dbfiddle

        2
  •  3
  •   Fahmi    7 年前

    locate()

    select distinct substring(city,1,locate(' -',city)) as city