我在下面有page
表格,我想从template_id
列中删除“ 999 ”的编号前缀,
page_id template_id url
1 9991 a
2 9992 b
3 9993 c
4 4 d
所以我可以在下面获得更新的数据,
page_id template_id url
1 1 a
2 2 b
3 3 c
4 4 d
我知道如何删除这种前缀吗?
答案 0 :(得分:6)
获取问题中显示的数据:
SELECT
page_id,
SUBSTRING(template_id, IF(template_id RLIKE '^999', 4, 1)) AS template_id,
url
FROM page
或者,如果您想永久更新表格:
UPDATE page
SET template_id = SUBSTRING(template_id, 4)
WHERE template_id RLIKE '^999'
MySQL的implicit type conversion将处理其余的事情。
答案 1 :(得分:2)
如果您不想进行复杂的查询,或者您需要进一步操作,则可以执行以下操作:
while($r = mysql_fetch_assoc($q)) {
$newTemplateID = (string) $r['template_id'];
if (substr($newTemplateID,0,3) === 999 ) {
$newTemplateID = substr($newTemplateID,3);
mysql_query("UPDATE tbl
SET template_id = {$newTemplateID}
WHERE page_id = {$r['page_id']}
LIMIT 1");
}
}