In this post, I will tell you how to search comma separated value in Laravel Query Builder using MySQL find_in_set()
method.
Using find_in_set()
method, you can find the position of a string within a comma separated value.
FIND_IN_SET(needle,haystack);
Ok, Let's have a table which stores the article with the tags and you need to find out value from comma separated tags.
articles table
Now if you need to find out the articles that tagged into "php", you can use the "FIND_IN_SET" method in following way :
SELECT title FROM articles WHERE FIND_IN_SET('php', tags);
FIND_IN_SET
method is predefine method of MySQL.
In Laravel, You will use whereRaw()
method to write your own raw SQL queries.
So you can use "find_in_set" method with whereRaw() in Laravel.
- $data = \DB::table("articles")
- ->select("title")
- ->whereRaw("find_in_set('php',tags)")
- ->get();
Collection {#169 ▼ #items: array:1 [▼ 0 => {#170 ▼ +"title": "PHP Basic" } ] }