majidbayat
جمعه 28 آذر 1399, 21:46 عصر
سلام دوستان
فرض کنید چنین جدولی داریم
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"]
کسی راه حل رو بلده؟
فرض کنید چنین جدولی داریم
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"]
کسی راه حل رو بلده؟