如何在 MySQL 中搜索包含两个或多个由空格分隔的单词的字符串字段?

我有一些旧的数据库,我没有对通过 Web PHP 表单插入名称设置一些限制。现在我把它们放在那里只有一个词,而不是两个或更多。在该数据库中经过多年之后现在有 10 000 行。


数据库中的示例字段:“John Doe Blue” 使用新规则用户只能填写“JohnDoeBlue”


有什么方法可以选择我的名称在该字符串字段中不仅包含单个单词而且包含多个单词的所有情况?我的新功能可以防止字段中出现错误或多个单词:


  public function wrongName($name)

  {

    return !preg_match("/^[a-zA-Z0-9]{3,20}$/", $name);

  }

如何从数据库中选择所有不满足此功能但已存在于数据库中的案例?


回首忆惘然
浏览 278回答 2
2回答

侃侃尔雅

如果您想从包含此类数据的列中删除任何空格,"John Doe Blue"您需要做的就是UPDATE table SET column = REPLACE(column, ' ','');如果您想在更新之前检查您是否只获得了您想要的行,请尝试SELECT column, REPLACE(column, ' ','') as potentialNewColumnFROM table WHERE INSTR(column, ' ') > 0 ;

Qyouu

以下查询可用于替换和搜索。select * from table where REPLACE (column,' ','') like '%your value%':
打开App,查看更多内容
随时随地看视频慕课网APP