【问题标题】:Group By a substring in a field按字段中的子字符串分组
【发布时间】:2011-11-20 21:13:17
【问题描述】:

我有一个城市表,其中有诸如“洛杉矶(加利福尼亚)”之类的城市名称。

我试图通过请求提取括号之间包含的所有值,但我没能做好...

我尝试的请求如下所示:

SELECT cityname FROM cities WHERE cityname LIKE "%(%)%" 
GROUP BY SUBSTR(cityname, FIND_IN_SET(cityname, '('))

或者类似的东西(没有分组):

SELECT SUBSTR(cityname, FIND_IN_SET(cityname, '(')) FROM cities 
WHERE cityname LIKE "%(%)%"

这些请求似乎有什么问题?

【问题讨论】:

    标签: mysql sql group-by substring


    【解决方案1】:

    试试这个:

    SELECT SUBSTRING(cityname, CHARINDEX('(',cityname)+1,
               (LEN(cityname) - CHARINDEX('(',cityname)-1)) 
    FROM cities WHERE cityname LIKE '(%)%' 
    

    【讨论】:

    • 感谢您的建议。我编辑了我的第一篇文章,因为我忘了准确地说我正在使用无法识别 CHARINDEX 函数的 mySQL :(
    • 那没关系!我用 LOCATE 代替了 CHARINDEX,用 LENGTH 代替了 LEN,我似乎工作正常!谢谢!
    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 2016-12-24
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2021-08-04
    相关资源
    最近更新 更多