PHP 怎么把mysql中一个字段中包含的中文筛选出来,添加到另一个空字段中。
求代码。就像图1中payment字段里面是一些数据,由中文和英文构成的,有的中文在前面有的中文在后面,有的前后都有。没有什么规律可言,英文有电话号,有邮箱,还有银行卡号。...
求代码。就像图1中 payment字段里面是一些数据,由中文和英文构成的,有的中文在前面 有的中文在后面,有的前后都有。没有什么规律可言,英文有电话号,有邮箱,还有银行卡号。我想有没有什么思路能把 payment字段中的中文,移动到zhongwen字段中。变成像图2那样的效果我要整理的表里面有几千条这样的数据,求个批量的代码。万分感谢。
补充一点,payment大概有几千条数据,
有一些前面有中文,
有一些后面有中文,
有一些前后都有
还有一些没有中文
求高手大神帮我写个demo 好人一生平安,打酱油的就不要回答了 展开
补充一点,payment大概有几千条数据,
有一些前面有中文,
有一些后面有中文,
有一些前后都有
还有一些没有中文
求高手大神帮我写个demo 好人一生平安,打酱油的就不要回答了 展开
1个回答
展开全部
$conn = mysqli_connect('127.0.0.1', 'root', '', 'test');
mysqli_query($conn, "set names 'utf8'");
mysqli_query($conn, 'set character_set_client=utf8');
mysqli_query($conn, 'set character_set_results=utf8');
$res = mysqli_query($conn, 'select * from orders');
while ($row = mysqli_fetch_object($res)) {
//用正则取payment中的汉字到$chinese变量
preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $row->payment, $chinese);
//把preg_match_all匹配的$chinese数组转为字符串
$chinese = implode('', $chinese[0]);
//把原字段中的中文用正则删掉
$payment = preg_replace("/[\x{4e00}-\x{9fa5}]+/u", '', $row->payment);
//执行更新
$sql = "update orders set payment = '$payment' , zhongwen = '$chinese' where Id = '$row->Id' ";
mysqli_query($conn, $sql);
}
demo中的数据库是我新建的一个测试库test 表名orders 主键Id
实际使用需要先改成你的实际真实数据库信息
执行前
执行后
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询