Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在sql中选择子字符串_Mysql_Sql_Postgresql - Fatal编程技术网

Mysql 在sql中选择子字符串

Mysql 在sql中选择子字符串,mysql,sql,postgresql,Mysql,Sql,Postgresql,我正在使用sql语言。我想从字符串中选择一个子字符串:Rayan 当我执行时,从表1中选择子字符串(col1,1,5)它工作正常 我的问题是,如果我给出的字符串长度大于它存在的长度,它将显示相同的结果 即,从表1中选择子字符串(col1、1、6) 结果:Rayan 现在我需要:如果我们给出的长度大于字符串长度,它将不会返回任何内容。有人知道吗 小提琴:您正在使用子字符串函数。您需要指定最大长度 子字符串(表达式、开始、长度) 参数 表达 是字符、二进制、文本、ntext或图像表达式 开始 是一个

我正在使用sql语言。我想从字符串中选择一个子字符串:
Rayan

当我执行时,
从表1中选择子字符串(col1,1,5)
它工作正常

我的问题是,如果我给出的字符串长度大于它存在的长度,它将显示相同的结果

即,从表1中选择子字符串(col1、1、6) 结果:
Rayan

现在我需要:如果我们给出的长度大于字符串长度,它将不会返回任何内容。有人知道吗


小提琴:

您正在使用子字符串函数。您需要指定最大长度

子字符串(表达式、开始、长度)

参数

表达 是字符、二进制、文本、ntext或图像表达式

开始 是一个整数或bigint表达式,指定返回字符的起始位置。如果start小于1,则返回的表达式将从表达式中指定的第一个字符开始。在这种情况下,返回的字符数是start+length-1或0之和的最大值。如果start大于值表达式中的字符数,则返回零长度表达式

长度
是一个正整数或bigint表达式,指定将返回表达式的字符数。如果长度为负,则生成错误并终止语句。如果起始和长度之和大于表达式中的字符数,则返回从起始处开始的整个值表达式。

如果尝试选择的长度(以字符为单位)大于此长度,则可以检查列的长度并有条件地不显示输出:

SELECT id,
CASE WHEN CHAR_LENGTH(col1) <= 10 THEN SUBSTRING(col1, 1, 10)
ELSE ''
END AS cond_col1
FROM table1
选择id,

当字符长度(col1)时,您可以按照以下方法进行尝试-

select substring(col1, 1,if(5<=length(col1),5,0))
from table1
选择子字符串(col1、1、if(5MySQL或Postresql)(它们的字符串函数有点不同…)