【发布时间】:2016-02-01 02:36:01
【问题描述】:
我有以下记录..
ABC/290116/1
ABC/290116/2
ABC/290116/10
如何从这些记录中获得斜线“/”后最右边的数值(1、2、10、..)? 如果您有 PHP 代码来自动重置每月的值,不胜感激。
非常感谢
【问题讨论】:
-
可能值得考虑该值的含义,以及是否应规范化数据库表。乍一看似乎违反了第一范式..
我有以下记录..
ABC/290116/1
ABC/290116/2
ABC/290116/10
如何从这些记录中获得斜线“/”后最右边的数值(1、2、10、..)? 如果您有 PHP 代码来自动重置每月的值,不胜感激。
非常感谢
【问题讨论】:
在 MySQL 中,您将使用 substring_index():
select substring_index(col, '/', -1)
from t;
如果你想要这个数字:
select substring_index(col, '/', -1) + 1
from t;
【讨论】:
假设您知道所有记录都将采用ABC/x/y 格式并且将有/ 作为分隔符,您可以使用explode() 执行以下操作:
$record = "ABC/290116/10";
$value = explode("/", $record);
echo $value[2];
请注意,在这种情况下,explode() 会将$record 拆分为三个部分,ABC、290116 和10。 $value[2] 将为您提供第三部分。
在您将遍历多条记录的情况下,请执行以下操作:
$records = array (
"ABC/290116/1", "ABC/290116/2", "ABC/290116/10"
)
foreach($records as $record) {
$value = explode("/", $record);
// Do something with your $value[2].
}
【讨论】: