我有一个包含字符串值的字段,但是字符串内有空格。此值代表字段值的示例:
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
如何查询该字段中第一个空格之前的部分?在我们的示例中:
ECDHE-RSA-AES128-GCM-SHA256
因此,如果字段名称f
和表t
,我将查询:
SELECT f from t;
如何查询空格前的部分字符串?
注意:
空格可以是一个或多个空格。请考虑一下。
答案 0 :(得分:1)
您可以使用SUBSTRING()
和POSITION()
进行操作,POSTION()
用于查找第一个空白的索引,而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;
答案 1 :(得分:1)