'find in set in laravel ? example

I am new in laravel. My query is i need to find out value from comma separated field.

Here is my table:

tags_value

id tags
1 css,html,php
2 php,java,css
3 java,c++,ios

This is my SQL query:

$query = DB::table('tags_value')
         ->whereRaw(FIND_IN_SET('css', Tags))
         ->get();

but it's not working.

Please help me to solve this problem. Thanks in advance.



Solution 1:[1]

You need to escape the call to FIND_IN_SET() using quotes:

$query = DB::table('tags_value')
    ->whereRaw('FIND_IN_SET("css", Tags)')
    ->get();

But unless it's a fixed value, you should always parameterize the column for which you search in FIND_IN_SET:

$searchvalue = 'css';
$query = DB::table('tags_value')
    ->whereRaw('FIND_IN_SET(?, Tags)', [$searchvalue])
    ->get();

Solution 2:[2]

Try this :

->whereRaw("FIND_IN_SET('css',tags)")

Solution 3:[3]

DB::table('tags_value')->whereRaw("find_in_set('php',tags)")....

Note that while using find_in_set() with Laravel Eloquent .find_in_set('.$tags.',columnName). sometime we become confuse that where we need give variable and db column name.

Solution 4:[4]

How to use find in set in laravel with passing dynamic value to eloquent. 100% work.

$restaurants = Restaurant::whereRaw('FIND_IN_SET("'.$request->code.'",restaurant_code)')->get();

Solution 5:[5]

This is how I have done it:

$value = '2';
Vendor::whereRaw('FIND_IN_SET("'.$value.'",service_industries)')->count();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 miken32
Solution 2 Mr. Engineer
Solution 3 Syscall
Solution 4 Kaleemullah
Solution 5 hackernewbie