如何从字段mysql中选择前20个字符后的字符

Posted

技术标签:

【中文标题】如何从字段mysql中选择前20个字符后的字符【英文标题】:how to select characters after first 20 characters from field mysql 【发布时间】:2014-12-13 10:01:24 【问题描述】:
 select address (first 20 character) as Address1 , 
        address (characters after first 20 if less then 20 then NULL) as Address2
 from customer

如何选择 20 个字符后的字符串?

【问题讨论】:

我认为您可能误用了您的数据库。这两个字段应该在不同的列中,这样您就不必做这种事情了。 可能是子字符串函数。 dev.mysql.com/doc/refman/5.0/en/… 我正在将值从一个表传输到另一个地址字段有限制的表。 【参考方案1】:

获取前 20 个字符之后的字符(注意如果没有 20 个字符,函数将返回一个空字符串):

SELECT SUBSTRING('Some Random Address That is Longer than 20 characters' FROM 20);

现在如果你需要地址 2 为 NULL,你首先检查字符长度:

SELECT if(char_length(address) > 20, SUBSTRING(address FROM 20), NULL);

要获取前 20 个字符,可以像这样使用 substring 函数:

SELECT SUBSTRING('Some Random Address', 1, 20);

现在最终的查询可能如下所示:

SELECT SUBSTRING(address, 1, 20) as Address1, 
    IF(CHAR_LENGTH(address) > 20, SUBSTRING(address FROM 20), NULL) as Address2
FROM customer

【讨论】:

【参考方案2】:

substring 是您正在寻找的:

SELECT SUBSTRING(address, 1, 20) AS Address1, 
       SUBSTRING(address FROM 20) AS Address2
FROM   customer

【讨论】:

以上是关于如何从字段mysql中选择前20个字符后的字符的主要内容,如果未能解决你的问题,请参考以下文章

mysql 数据库 列表中的字段前如何批量添加指定字符?

SQLite中怎么将两个字段字符串合并连接为一个

SQLite中怎么将两个字段字符串合并连接为一个

sql语句,如何截取指定字段某一个字符出现后的后面的字符串吗

在mysql中如何判断一个字符串中有某个字段

MySQL删除所有字段的前两个字符