这是我的sql表,
id | name | city
------------------------
1 | John Due | New york
2 | Luke Wright | Kingston upon Hull
在我的搜索收件箱中,如果我搜索“在Kingston Hull上”,则返回第二行;或者,如果我搜索“ Due John”,则返回第一行。
那我该如何写类似查询? 并在Laravel Eloquent中编写查询
答案 0 :(得分:3)
如果您对此需求有长期的需求,则可以考虑使用full text search。简而言之,MySQL提供了一个REGEXP
运算符,它可以执行一些相当复杂的正则表达式搜索。要在name
和Due
的{{1}}列中搜索,我们可以尝试:
John
要搜索SELECT id, name, city
FROM yourTable
WHERE name REGEXP '[[:<:]]John[[:>:]]' AND name REGEXP '[[:<:]]Due[[:>:]]';
或 Due
,则可以使用以下替代形式:
John