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

时间:2019-02-18 09:47:12

标签: mysql sql group-by

我使用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 个答案:

答案 0 :(得分:4)

您可以使用Object.fromEntries()SELECT DISTINCT

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

SUBSTRING_INDEX

答案 1 :(得分:3)

您可以使用locate()功能

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