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