如何选择空格前面的字符串值的一部分

nxagd54h  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(389)

我有一个包含字符串值的字段,但字符串中有空格。此值表示字段值的示例:

  1. XXXX-XXX-111111-2222-33 SSS x=AAAA Au=AAAA QQQ=AAA(222) SS=AAAA

如何查询此字段中第一个空格之前的零件?在我们的例子中:

  1. XXXX-XXX-111111-2222-33

如果字段名 f 和table t ,我将查询:

  1. SELECT f from t;

如何查询空格前面的部分字符串?
注:
空间可以是一个或多个空间。请考虑一下。

g9icjywg

g9icjywg1#

尝试子字符串索引:

  1. SELECT SUBSTRING_INDEX(`f`, SPACE(1), 1)
  2. FROM `t`;

见小提琴。

des4xlb0

des4xlb02#

你可以用 SUBSTRING() 以及 POSITION() 要做到这一点, POSTION() 用于查找第一个空白的索引,以及 SUBSTRING() 用于查找所需的子字符串

  1. SELECT SUBSTRING('ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD',1,
  2. POSITION(' ' IN 'ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD')) AS result;

输出:

  1. ECDHE-RSA-AES128-GCM-SHA256

更具可读性的方式:

  1. SET @str='ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD';
  2. SELECT SUBSTR(@str,1,POSITION(' ' IN @str)) AS result;

相关问题