php - 具有反向名称返回结果的 SQL Like 查询

标签 php mysql laravel

这是我的sql表,

id |     name     | city
------------------------
1  |   John Due   | New york
2  |  Luke Wright | Kingston upon Hull

在我的搜索收件箱中,如果我搜索“Upon Kingston Hull”返回第二行,或者如果我搜索“Due John”则返回第一行。

那我怎么写like query呢? 并在 Laravel Eloquent 中编写查询

最佳答案

如果您长期需要此要求,您可能需要查看 full text search .除此之外,MySQL 提供了一个 REGEXP 运算符,它可以进行一些相当复杂的正则表达式搜索。要在 name 列中搜索 DueJohn,我们可以尝试:

SELECT id, name, city
FROM yourTable
WHERE name REGEXP '[[:<:]]John[[:>:]]' AND name REGEXP '[[:<:]]Due[[:>:]]';

要搜索Due John,那么我们可以使用替代方法:

SELECT id, name, city
FROM yourTable
WHERE name REGEXP '[[:<:]](John|Due)[[:>:]]';

关于php - 具有反向名称返回结果的 SQL Like 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993101/

相关文章:

mysql - 需要自定义id

javascript - 使用json获取php调用页面的返回值

php - 创建一个简单的数组

Laravel 5.6 - 如何在 api Controller 中获取 auth()->user() 或 $response->user()?

MySql Join 性能 vs Where + in

php - PHP 中的查询不起作用

php - 将表单值插入数据库

php - 使用下拉菜单从 MySQL 提取和发布数据

php - array_walk_recursive 返回值

php - 将数据从 js 发送到 php、php 到 mysql 以及 REST json 响应时所需的正确编码/转义/htmlentities 是什么