我正在使用mysqlnd 5.0.10
并且我一直试图弄清楚如何做Field_A = Field_B
(Field_A
作为JSON ARRAY)。
Field_A = ["436","431","437","443","434"]
Field_B = 436
我尝试过像
这样的事情Field_A LIKE Field_B
(这还不够准确)JSON_TYPE(Field_A) IN (Field_B)
mysql
的版本没有JSON_EXTRACT
,只有我可以看到其工作的其他方式是regex
答案 0 :(得分:1)
我无法找到在MySQL中执行此操作的可行方法,因此我决定解析所有JSON数据并将其移至带有INDEXING的单独表中,然后使用所述表搜索foreach($pks as $k => $v) {
$values = explode('||', $v);
$result[] = array_combine(range(1, count($values)), $values);
//added
$res[] = array_combine(['date', 'vessel'], $values) ;
}
Array
(
[0] => Array
(
[1] => 2017-04-15
[2] => KMTC_HOCHIMINH
)
[1] => Array
(
[1] => 2017-04-15
[2] => OOCL_NAGOYA
)
)
。
如果有人确实知道这样做的可行方法,而不将所有数据移动到索引表中。我仍然感兴趣。
答案 1 :(得分:1)
这适用于我,我不确定这是否是您正在寻找的内容,但是联接确实会返回您提供的行作为示例(Field_A被声明为JSON,Field_B作为INT(11),Field_A的值是[" 436"," 431"," 437"," 443",&#34 ; 434"],Field_B的值是436)
select * from A join B
ON A.Field_A LIKE CONCAT('%"', B.Field_B, '"%')