这是我的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
列中搜索 Due
和 John
,我们可以尝试:
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/