如何仅返回列的特定部分?

时间:2018-09-20 10:20:48

标签: mysql

所以我有一列返回的字符串看起来像这样:

part1 > part2 > part3

当我选择该行时,我只希望返回第2部分,但是我不太清楚该怎么做。我最接近的是通过以下语句:

SELECT
SUBSTRING(column_name, INSTR(column_name, ">") +2)

FROM
table;

哪个返回part2 > part3

我研究过使用RegEx,但是我对此并不太确定,我似乎无法全神贯注于如何构建该语句... 如果有人可以给我一些指导,那将不胜感激:)

2 个答案:

答案 0 :(得分:3)

Trim()一起使用Substring_Index()功能:

`CompileSwift normal arm64
    cd /Users/vsts/agent/2.140.0/work/1/s
    /Applications/Xcode_9.4.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -emit-bc /Users/vsts/agent/2.140.0/work/1/s/TaskManager/ViewController.swift /Users/vsts/agent/2.140.0/work/1/s/TaskManager/AppDelegate.swift -target arm64-apple-ios11.4 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode_9.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk -I /Users/vsts/Library/Developer/Xcode/DerivedData/TaskManager-hgihqzndqrcqcahjnxfhdrfxlmns/Build/Intermediates.noindex/ArchiveIntermediates/TaskManager/BuildProductsPath/Release-iphoneos -F /Users/vsts/Library/Developer/Xcode/DerivedData/TaskManager-hgihqzndqrcqcahjnxfhdrfxlmns/Build/Intermediates.noindex/ArchiveIntermediates/TaskManager/BuildProductsPath/Release-iphoneos -F /Users/vsts/agent/2.140.0/work/1/s -g -module-cache-path /Users/vsts/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 4 -O -serialize-debugging-options -Xcc -I/Users/vsts/Library/De...
/Users/vsts/agent/2.140.0/work/1/s/TaskManager/ViewController.swift:10:8: error: module compiled with Swift 4.2 cannot be imported in Swift 4.1.2: /Users/vsts/agent/2.140.0/work/1/s/Alamofire.framework/Modules/Alamofire.swiftmodule/arm64.swiftmodule
import Alamofire
       ^

** ARCHIVE FAILED **

详细信息:

  • SELECT TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, " > ", 2), " > ", -1)) FROM table 函数的documentation
  

在出现计数之前,从字符串str返回子字符串。   定界符delim。如果count为正,则左侧的所有内容   返回最终定界符(从左侧开始计数)。如果计数为   否定,最后定界符右边的所有内容(计数   从右边)返回。 SUBSTRING_INDEX()执行   搜索delim时区分大小写。

  • SUBSTRING_INDEX(column_name,“>”,2)返回“ part1> part2
  • 进一步SUBSTRING_INDEX(string,“>”,-1)返回“ part2
  • 请注意定界符字符串Substring_Index
  • 中前导和尾随空格的用法
  • TRIM清除所有前导和尾随空格(如果还有)。

答案 1 :(得分:0)

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ">" ,2), ">", -1)

mysql有一个非常有用的SUBSTRING_INDEX函数,该函数仅将字符串获取到特定的子字符串或字符。它还允许您使用负数从字符串末尾倒退。 另外,请注意,如果您要修剪“>”周围的空格(如其他人建议的那样),则可以使用“>”而不是仅“>”