سلام دوستان
فرض کنید چنین جدولی داریم
column1 |
id |
["1","2","3"] |
1 |
["1","2"] |
2 |
["1"] |
3 |
["2","3"] |
4 |
اگر بخواهیم سطرهایی که در اونها 1و2 وجود داره ( اسمش رو میذارم x ) رو پیدا کنیم باید از کد زیر استفاده کنیم
select * from `Test_table` where json_contains(`column1`, "["1","2"]")
یا
select * from `Test_table` where `column1` like "%1%" and `column1` like "%2%"
یا در لاراول
$test = Test::whereNotNull( 'id' );
foreach ( $x as $key ) {
$test->where( 'column1', 'like', "%$key%" );
}
$test->get();
نوع دیگر لاراول
$test = Test::whereNotNull( 'id' );
$test->whereJsonContains( 'column1', $x );
$test->get();
id |
column1 |
1 |
["1","2","3"] |
2 |
["1","2"] |
چیزی که من احتیاج دارم دقیقا برعکسه، یعنی قصد دارم سطرهایی رو پیدا کنم که مقدار اون سلول در x یا همون 1و2 وجود داشته باشه یعنی جواب جستجو بصورت زیر باشه
id |
column1 |
2 |
["1","2"] |
3 |
["1"] |
کسی راه حل رو بلده؟