0

JSON 形式の複数の ID を選択するにはどうすればよいですか?

$query = 'SELECT * FROM articles as a WHERE "10" IN (a.catids)';

The value of a.catids in the db-field is {"0":"10","1":"12"};
4

3 に答える 3

2

何かのようなもの:

$query = 'SELECT * FROM articles as a WHERE a.catids like '%:"10",%';

: と を含めたので、インデックスではなく値を選択していることは確かです

于 2012-04-23T17:49:04.700 に答える
1

これを行う「適切な」方法はありません。MySQL は JSON が何であるかを認識していません。ID をテキスト検索しても、非常に遅いことがわかります。

テーブルを正規化することをお勧めします。スクリプトを更新catidsして、別のテーブルに配置するだけです。

于 2012-04-23T17:49:04.163 に答える
1

あなたはLIKEを探していると思います。

SELECT * FROM articles as a WHERE a.catids LIKE '%10%'

LIKE の構文も調べる必要があります (`%"_":"10"%' を検索して、2 番目の部分だけを検索し、さらに複雑なものを検索できるためです。

ただし、IDをそのように保存しないことをお勧めします。

于 2012-04-23T17:49:41.827 に答える