3

我正在尝试获取字符串的中间部分。我的表如下:

id   machine   model
1    lathe     ISO-678-1567 

我想从机器模型中获得像 678 这样的中间部分。

预期输出:

id   machine   model             midcode
1    lathe     ISO-678-1567      678

目前我正在用 PHP codwe 做同样的事情。但我认为在 Mysql 查询本身中做会更好。请帮我怎么做?

4

5 回答 5

6

使用MID(str,pos,len)将执行此操作的 mysql 函数。

SELECT id,machine,model,MID(model,4,3) as midcode FROM tablename 
于 2012-04-11T01:55:15.473 回答
4

如果model总是固定长度,那么您可以使用SUBSTRING(),如下所示:

SELECT SUBSTRING(model, 5, 3) AS 'midcode' FROM Tablename 
于 2012-04-11T01:57:46.690 回答
1

我使用以下查询创建了一个sql fiddle :

SELECT id,machine,model,
       left(substring(model,(instr(model,'-')+1)),instr(model,'-')-1) AS midcode
FROM tbl_machine;
于 2013-02-21T18:46:52.450 回答
0

寻找 SUBSTR/SUBSTRING:http ://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substr

具体用途是 SUBSTRING(field, start_position, length)

SELECT SUBSTRING(model, 5, 3) as 'midcode' from Tablename
于 2012-04-11T02:03:56.370 回答
0

MID() - 返回从指定位置开始的子字符串
SUBSTRING()返回指定的子字符串

站点参考:文档官方

于 2016-01-18T11:44:21.080 回答