Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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 - Fatal编程技术网

Mysql 插入一个“-&引用;SQL中整列的第三个字符后

Mysql 插入一个“-&引用;SQL中整列的第三个字符后,mysql,sql,Mysql,Sql,我有一个列(名称是列的标题),有8个字符的数字。我正在寻找一个查询,在每行数据的第三个字符后插入“-” 例如,如果我有: | Name | |----------| | 99912345 | 我想得到: | Name | |-----------| | 999-12345 | 我尝试了以下方法: SELECT INSERT(name, 3, 0, "-"); 我使用的数据库在mySQL上称为temp.Test1。在mySQL中,使用substring

我有一个列(名称是列的标题),有8个字符的数字。我正在寻找一个查询,在每行数据的第三个字符后插入“-”

例如,如果我有:

|   Name   |
|----------|
| 99912345 | 
我想得到:

|   Name    |
|-----------|
| 999-12345 |
我尝试了以下方法:

SELECT INSERT(name, 3, 0, "-");

我使用的数据库在mySQL上称为temp.Test1。在mySQL中,使用
substring
将值除以
concat
将其放回一起

set@test=99912345;
选择concat(
子串(@test,1,3),
'-',
子字符串(@test,4)
);
给出
999-12345


编辑:您还可以创建一个虚拟列来执行此操作,只需在应用程序中检索该列即可

altertable`test1`
将'formattedName'varchar(9)添加为(
海螺(
子字符串(`name`,1,3),
'-',
子字符串(`name`,4)
)
);
请参见

您很接近:

SELECT INSERT(name, 4, 0, '-') from mytable
以下是演示:


用你正在使用的数据库标记你的问题。我已经添加了它thanks@Starbucks,他的意思是标记你是否正在使用mysql、postgres、mssql等。我很感兴趣的是,为什么这不是一个正确的答案?谢谢@Starbucks ofr的回答。它确实有效,但对于我的例子,我想避免使用insert语句(我没有提及的错误),所以我使用了子字符串函数,然后将其重新组合在一起。谢谢你!好的,我知道它有效…再次感谢你的解释…不客气。有关使用虚拟列的更好解决方案,请参见我的更新答案;-)
SELECT INSERT(name, 4, 0, '-') from mytable