Mysql:如何在对给定字符串执行 LIKE 之前删除列中除字母和数字之外的所有内容

标签 mysql sql-like

我想知道谷歌如何进行搜索,假设我的数据库中有一条名为圣约翰路的道路,我在我的ajax-auto-sugestion字段中输入...

圣约翰

如何自动选择显示与内容相似的道路,但不使用 .或数据库中的 '

如果我开始打字...

圣。约翰

然后它当然会显示我使用的建议。

这可以做到吗?

我的字段具有道路的正确名称,我使用 utf8_general_ci 作为道路名称字段,并使用 LIKE 方法来获取结果。

最佳答案

您在服务器上使用什么来让用户与您的 MySQL 服务器进行交互?通常人们使用 PHP 之类的东西来处理数据库和用户端 HTML 之间的信息。

要纯粹在 MySQL 中执行此操作(我不确定这是否是您想要实现的目标),您可以使用 UPDATE table SET field_name = replace( replace(field_name, '.', ''), '"'. ' ' );

这将同样替换没有空格的句点,以及只有一个空格的空格的句点。

我认为在 PHP 中做这类事情更容易,你可以使用 str_replace .

这样您最终将使用

$address = ($_POST['address']); $address = str_replace('.', '', $address);

这可以在写 LIKE 之前完成。 MySQL 中的语句。您可以阅读有关 LIKE 的更多信息此处声明:MySQL Like Operator

哪里$_POST['address']<input> 返回用户输入地址并通过表单提交的元素。在 ajax 中执行此操作并自动完成/自动选择有点困难,因为在键入操作时发送 AJAX 请求并不简单。当然其他人可以帮助解释这一点,但我唯一一次做过基于 AJAX 的自动建议,我是通过 PHP 从 MySQL 预加载数组的。我确信谷歌不会这样做。

关于Mysql:如何在对给定字符串执行 LIKE 之前删除列中除字母和数字之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22615866/

相关文章:

mysql - 配置单元 : finding items that customers bought together from transactions

MYSQL 与Where 和Like And not in

sql - 在 SQL 中搜索 %(

sqlite - 在 sqlite 中使用 LIKE 区分大小写的便捷方法

t-sql - 您可以在 JOIN w/SQL 上使用 LIKE 运算符进行更新吗?

c# - 参数化字符串以及 LIKE 和通配符运算符

mysql - 如何有效地在数据库表中搜索一段文本中子字符串的所有组合?

php mysql html 分页不起作用

PHPUnit 测试仅在访问 Laravel 5 中的根页面(访问 ('/' ))时失败

javascript - 如何将javascript变量发送到php mysql