我想重写一些用户id,它是由文本和数字之间的"-“分割的。例如:
从大量的数据中提取出来,这些数据与文字和数字混在一起。例如:
所以问题是:我想让用户id从第二个例子变成第一个例子。如何在MySQL中实现。请建议一下。
发布于 2013-02-16 11:53:09
SELECT
CASE
WHEN floor(substr(name, 3,1)) > 0
THEN CONCAT_WS('-', SUBSTRING(name, 1, 2), SUBSTRING(name, 3, LENGTH(name)))
ELSE CONCAT_WS('-', SUBSTRING(name, 1, 3), SUBSTRING(name, 4, LENGTH(name)))
END AS new_name
FROM test发布于 2013-02-16 11:51:35
没有“选择”数据,但更新:
UPDATE `table` SET field = REPLACE(field, '-', '');发布于 2013-02-16 12:41:00
这里是一个如何在php中使用它的例子。
$str = 'abc123';
preg_match('#([a-z]*)(\d*)#', $str, $match);
echo 'alpha: ' . $match[1];
echo 'num: ' . $match[2];?> https://stackoverflow.com/questions/14909897
复制相似问题