我想在一个字段的值中搜索一个词,所以使用了 LIKE,但它没有给我想要的输出。 我写了这段代码:
User::where('name', 'LIKE','%'. $search . '%')->get();
如果name值如下:
|-------------------|
| name |
|-------------------|
| John Doe |
|-------------------|
| Jane Smith |
|-------------------|
| Will Johnson |
|-------------------|
| MyJohnTest |
|-------------------|
| Sara TestJohn |
|-------------------|
以上代码为John输出的结果是以下值
|-------------------|
| name |
|-------------------|
| John Doe |
|-------------------|
| Will Johnson |
|-------------------|
| MyJohnTest |
|-------------------|
| Sara TestJohn |
|-------------------|
但是我想要这样的输出,查询等于每个单词的第一个
|-------------------|
| name |
|-------------------|
| John Doe |
|-------------------|
| Will Johnson |
|-------------------|
如果有解决办法请告诉我
最佳答案
SQL 不知道你的单词在哪里结束所以你可以使用
User::where('name', 'LIKE', $search . ' %')
->orWhere('name', 'LIKE',' %'. $search . '%')
->orWhere('name', 'LIKE','% '. $search . ' %')
->get();
关于mysql - 如何在eloquent中用LIKE搜索句子中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57440925/