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

Mysql 如何选择空格前的字符串值的一部分,mysql,database,mysql-workbench,Mysql,Database,Mysql Workbench,我有一个包含字符串值的字段,但字符串中有空格。此值表示字段值的示例: XXXX-XXX-111111-2222-33 SSS x=AAAA Au=AAAA QQQ=AAA(222) SS=AAAA 如何查询此字段中第一个空格之前的零件?在我们的例子中: XXXX-XXX-111111-2222-33 因此,如果字段名f和表t,我将查询: SELECT f from t; 如何查询空格前的字符串部分 注意: 这些空间可以是一个或多个空间。请考虑这一点。 < p>可以使用子字符串()

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

XXXX-XXX-111111-2222-33 SSS x=AAAA     Au=AAAA  QQQ=AAA(222) SS=AAAA
如何查询此字段中第一个空格之前的零件?在我们的例子中:

XXXX-XXX-111111-2222-33
因此,如果字段名
f
和表
t
,我将查询:

SELECT f from t;
如何查询空格前的字符串部分

注意:


这些空间可以是一个或多个空间。请考虑这一点。

< p>可以使用<代码>子字符串()/<代码>和<代码>位置()/代码>来执行,<代码>位置()/代码>用于查找第一个空白空间的索引,而<代码>子串()/<代码>用于查找所需的子字符串

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

ECDHE-RSA-AES128-GCM-SHA256
更具可读性的方式:

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

您可以使用
SUBSTRING()
POSITION()
来执行此操作,
POSITION()
用于查找第一个空白的索引,
SUBSTRING()
用于查找所需的子字符串

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

ECDHE-RSA-AES128-GCM-SHA256
更具可读性的方式:

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

选择子字符串索引(`f`,空格(1),1)
从't';
请参阅。

尝试:

选择子字符串索引(`f`,空格(1),1)
从't';