PHP 怎么把mysql中一个字段中包含的中文筛选出来,添加到另一个空字段中。

求代码。就像图1中payment字段里面是一些数据,由中文和英文构成的,有的中文在前面有的中文在后面,有的前后都有。没有什么规律可言,英文有电话号,有邮箱,还有银行卡号。... 求代码。就像图1中 payment字段里面是一些数据,由中文和英文构成的,有的中文在前面 有的中文在后面,有的前后都有。没有什么规律可言,英文有电话号,有邮箱,还有银行卡号。我想有没有什么思路能把 payment字段中的中文,移动到zhongwen字段中。变成像图2那样的效果我要整理的表里面有几千条这样的数据,求个批量的代码。万分感谢。
补充一点,payment大概有几千条数据,
有一些前面有中文,
有一些后面有中文,
有一些前后都有
还有一些没有中文
求高手大神帮我写个demo 好人一生平安,打酱油的就不要回答了
展开
 我来答
136775565
2017-04-18 · TA获得超过1113个赞
知道小有建树答主
回答量:866
采纳率:88%
帮助的人:829万
展开全部
$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

实际使用需要先改成你的实际真实数据库信息

执行前

执行后

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式