我正在尝试获取字符串的中间部分。我的表如下:
id machine model
1 lathe ISO-678-1567
我想从机器模型中获得像 678 这样的中间部分。
预期输出:
id machine model midcode
1 lathe ISO-678-1567 678
目前我正在用 PHP codwe 做同样的事情。但我认为在 Mysql 查询本身中做会更好。请帮我怎么做?
使用MID(str,pos,len)
将执行此操作的 mysql 函数。
SELECT id,machine,model,MID(model,4,3) as midcode FROM tablename
如果model
总是固定长度,那么您可以使用SUBSTRING()
,如下所示:
SELECT SUBSTRING(model, 5, 3) AS 'midcode' FROM Tablename
我使用以下查询创建了一个sql fiddle :
SELECT id,machine,model,
left(substring(model,(instr(model,'-')+1)),instr(model,'-')-1) AS midcode
FROM tbl_machine;
寻找 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
MID() - 返回从指定位置开始的子字符串
SUBSTRING()返回指定的子字符串
站点参考:文档官方