php - 删除列中除字母和单个空格之外的所有内容

标签 php mysql

标题是这样的:

14 blue5 sky
3 5gold sun"
'/lorem   ip25sum
  light moon

我需要删除除字母和单词之间的单个空格之外的所有内容。

所以上面的例子应该是:

blue sky
gold sun
lorem ipsum
light moon

有什么帮助吗?

phpMyAdmin:

Server: 127.0.0.1 via TCP/IP
Server type: MariaDB
Server connection: SSL is not being used Documentation
Server version: 10.1.37-MariaDB - mariadb.org binary distribution
Protocol version: 10
User: root@localhost
Server charset: UTF-8 Unicode (utf8)

最佳答案

您应该能够使用嵌套的REGEXP_REPLACE来实现您想要的:

SELECT REGEXP_REPLACE(
         REGEXP_REPLACE(
           REGEXP_REPLACE(title, '[^[:alpha:] ]', ''),
           '^\\s+', ''),
         '\\s+', ' ') AS newtitle FROM table1

第一个 REGEXP_REPLACE 删除所有非字母字符;第二个删除字符串开头的所有空格,最后一个将一个或多个空格的任何序列替换为一个空格。

输出(用于您的示例数据):

newtitle
blue sky
gold sun
lorem ipsum
light moon
čć đš hello

要更新表中的值,您可以使用以下查询:

UPDATE table1
SET title =  REGEXP_REPLACE(
               REGEXP_REPLACE(
                 REGEXP_REPLACE(title, '[^[:alpha:] ]', ''),
                 '^ ', ''),
                '\\s+', ' ')

Demo on dbfiddle

关于php - 删除列中除字母和单个空格之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53937460/

相关文章:

javascript - 如何在不知道文件名的情况下指定下载文件夹?

php - Jquery 切换 .. 固定对齐

php - 从php中的sql查询获取数据并将其发送到另一个php

mysql - 使用having执行查询时出错

mysql - 错误 2002 : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

php - Google Maps API + SQL 数据库 + 渲染点 PHP

php - 如何更改 mongodb 中的集合结构?

sql查询返回0而不是NULL

php使用@符号动态调用函数

mysql 函数在两个表上,innodb